Javascript Если заявление не оценивается как правда - PullRequest
2 голосов
/ 22 июня 2010

Я пытаюсь перехватить последний случай в цикле forEach, но все случаи, по-видимому, оцениваются как ложные, а не как последний.Мой код:

for(var i in networks){
    if (i == (networks.length - 1)){
        //do stuff
    }
}

Что не так?

Ответы [ 2 ]

4 голосов
/ 22 июня 2010

Попробуйте это:

for(var i = 0, j = networks.length; i < j; i++){
    if (i == (j - 1)){
        //do stuff
    }
}

Я лично презираю цикл for...in в JavaScript, потому что он привносит в картину целый набор нежелательных свойств, он ненадежен - требует тонны проверок работоспособности, чтобы убедиться, что текущее свойство не имеет нежелательный тип или не определено. Я могу продолжать и продолжать об этом. Я полагаю, что единственный раз, когда вы думаете об его использовании, это единственный случай, когда вы перебираете объекты и вам нужны ключевые значения.

1 голос
/ 22 июня 2010

Если сети - это массив чисел в порядке от 0 до n, это должно работать.;) Если это не так, вы можете рассмотреть стандартный цикл for:

for(var i = 0; i < networks.length; i++) {
    var network = networks[i]; // in case you need this.
    if (i == (networks.length - 1)){
        //do stuff
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...