2015-07-18 5 views
-1

мне нужна помощь, я эту функцию в JavaScript:Уменьшить JavaScript, если заявление

function getPosition(elementToFind, array) { 
    var i; 
    for (i = 0; i < array.length; i += 1) { 
    if (array == elementToFind) { 
     return i; 
    } 
    } 
} 

А то у меня есть цикл, если я хотел бы уменьшить:

if (
    getPosition(1, arraySomething) == 0 && 
    getPosition(2, arraySomething) == 1 && 
    getPosition(3, arraySomething) == 2 && 
    getPosition(4, arraySomething) == 3 && 
    getPosition(5, arraySomething) == 4 && 
    getPosition(6, arraySomething) == 5 && 
    getPosition(7, arraySomething) == 6 && 
    getPosition(8, arraySomething) == 7 && 
    getPosition(9, arraySomething) == 8 && 
    getPosition(10, arraySomething) == 9 && 
    getPosition(11, arraySomething) == 10 
) { 
    ...code 
} 

Как я могу сделать Это?

+0

Ваша функция 'getPosition()' не имеет для меня никакого смысла. Вы зацикливаете и сравниваете 'array == elementToFind', но ничто в этом сравнении не меняется по мере того, как вы выполняете цикл, поэтому он всегда будет true или всегда будет false. Цикл ничего полезного не делает. Если вы хотите быть compariing 'array [i] == elementToFind', тогда вы можете просто использовать функцию Array' .indexOf() ', которая встроена и полностью избавлена ​​от' getPosition() '. – jfriend00

+0

Как всегда, если вы описали, какую проблему вы действительно пытаетесь решить (какие данные вы начинаете и что вы пытаетесь с ней сделать), мы, вероятно, поможем вам найти хорошее решение, но здесь вы спрашиваете как оптимизировать недостающую функцию, не объясняя цель - мы не можем там сделать. – jfriend00

+0

Моя цель - создать головоломку с изображением (25 изображений (не 11)), используя массивы ... То, что я хотел, было тогда, когда изображение 25 (белое) было на позиции 24 (последний), фон изображения 25 изменилось ... цикл, если была моя попытка организовать головоломку в порядке от изображения 1 к изображению 25, когда головоломка была в этом порядке, фон изображения 25 изменился. На самом деле это (array === elementToFind) и не (array == elementToFind) ... Прошу прощения, но это мой первый год в HTML (мне 18) и извините за мой плохой английский: P Спасибо apaul34208, больше не нужна помощь. – ElHashashin

ответ

1

Как о чем-то вроде этого

var isTrue = true; 
for(var n = 1; n <= length; n ++){ 
    if (getPosition(n, arraySomething) !== (n - 1)){ 
     isTrue = false; 
     break; 
    } 
} 

if (isTrue){ 
    ... 
}else{ 
    ... 
} 

?

+0

Спасибо за помощь! знак равно – ElHashashin

Смежные вопросы