Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Найти значение в массиве


Автор: zluka 17.8.2010, 18:54
Написал функцию:
Код

function searchInArray(value, array)
{
    for(var i=0; i < array.length; i++)
    {
        if(array[i] == value)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

var ids_array = new Array(3146, 3145, 545, 549);
//В this.Id есть такие значения 3145, 3146, 545, 549, 553, 557

$.each(searchResults.Results, function () //Вывод результатов
{
if(searchInArray(this.Id, ids_array)) //Проверяем или this.Id лежит в массиве
{
    alert(this.Id+'-ID property in array!');
}
else
{
    alert(this.Id+'-ID property NOT in array!');
}
});

Очень странно ведет себя ф-я searchInArray().
Пишет в алерте "3146-ID property in array!" то есть 3146 находит.
А для всех остальных айдишек: "-ID property NOT in array"
В чем проблема?

Автор: bars80080 17.8.2010, 19:12
а нечего было писать так странно. у вас всегда выполняется всего одна итерация в цикле, вынесите return false за цикл:

Код

function searchInArray(value, array)
{
    for(var i=0; i < array.length; i++)
    {
        if(array[i] == value)
        {
            return true;
        }
    }
    return false
}

Автор: zluka 17.8.2010, 19:24
Цитата(bars80080 @  17.8.2010,  19:12 Найти цитируемый пост)
а нечего было писать так странно. у вас всегда выполняется всего одна итерация в цикле, вынесите return false за цикл:

Заработало smile 


Спасибо smile 

P.S. Короче под вечер голова не бум-бум..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)