2015-04-20 3 views

ответ

74
arr = [1, 2, 3]; 

arr.forEach(function(i, idx, array){ 
    if (idx === array.length - 1){ 
     console.log("Last callback call at index " + idx + " with value " + i); 
    } 
}); 

выведет:

Last callback call at index 2 with value 3 

Как это работает тестирует arr.length против текущего индекса массива, переданного в callback function.

+0

Я могу позаботиться об этом, это немного более понятно, хотя я не уверен, что он фактически гарантирует что-то еще, так как 'arr' уже находится в сфере охвата как закрытие для каждого обратного вызова – jdphenix

+0

и сразу после публикации, что я понял один очевидный вариант использования - если вы определили обратный вызов в другом месте. Вставьте смущенное лицо. – jdphenix

+0

Не нужно смущаться. У меня был этот точный вопрос (зачем вам нужен массив, когда у вас есть arr), но ваше наблюдение/вопрос прояснилось, поэтому спасибо. Хотя странно, что вы сами написали этот ответ, и вы сомневаетесь в собственном ответе? Есть ли другие комментарии, на которые вы ответили, теперь были удалены? – redfox05

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