Показать сообщение отдельно
  #4 (permalink)  
Старый 29.05.2012, 12:09
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

stp008,
1) Функция вызывается 1 раз. За 1 раз любая функция может вернуть только 1 значение (не считая массивы и объекты)

2) return выходит из функции. Как только было совпадение, цикл перестаёт работать и функция возвращает значение

3) Если вы всё же хотите получить несколько значений, то
function find(array, value) {
        var res = [];
        for(var i=0; i<array.length; i++) {
            if (array[i] == value) res[i] = i;
            else res[i] = -1;
        }
 
        return res;
    }
    var arr = ["a", -1, 2, "b"];
    var index = find(arr, 2);
 
    alert(index);

В этом примере функция find собирает результаты в массив и возвращает уже не одно значение, а массив.
Ответить с цитированием