Показать сообщение отдельно
  #3 (permalink)  
Старый 07.09.2012, 14:00
Интересующийся
Отправить личное сообщение для 9112 Посмотреть профиль Найти все сообщения от 9112
 
Регистрация: 01.06.2012
Сообщений: 25

да. прерывается. голова не варит, прошу прощения.
в связи с этим возникает немного иной вопрос
имеем код:
Код:
for (var i=0; i<db.length; i++){
        if (db[i]['id']==parseInt(value)){
            console.log(db[i]);
            return db[i];
            break;
        }
        else {
            for (i=0; i<db.length; i++){
                if (db[i]['id']==view_foto){
                    console.log(db[i]);
                    return db[i];
                    break;
                }
            }
        }
    }
принцип работы - получаем id текущей фотографии. передаем его вышеописанной функции, она проходит по массиву и ищет данный id, после чего возвращает данный элемент массива. в случае, если не находит - срабатывает условие else и возвращает элемент массива, где id==view_foto.
проблема в том, что в массиве не находит передаваемого функции id(хотя он там есть), и переходит к else. если мы за комментируем блок else - все начинает работать.
пока сделал следующим образом, но хочется разобраться, почему вышеописанный вариант не работает..
Код:
var out;
    for (var i=0; i<db.length; i++){
        if (db[i]['id']==parseInt(value)){
            console.log(db[i]);
            out=db[i];
            break;
        }
    }
    if (out==null) 
        for (i=0; i<db.length; i++){
            if (db[i]['id']==view_foto){
                console.log(db[i]);
                out=db[i];
                break;
            }
        }
     return out;

Последний раз редактировалось 9112, 07.09.2012 в 14:03.
Ответить с цитированием