Catch для каждой последней итерации
arr = [1,2,3];
arr.forEach(function(i){
// last iteration
});
Как поймать, когда цикл заканчивается? Я могу сделать if(i == 3)
, но я мог бы не знать, каково количество моего массива.
Ответы
Ответ 1
Обновленный ответ для ES6+ здесь.
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
проверки arr.length
по текущему индексу массива, переданному в функцию обратного вызова.
Ответ 2
ОТВЕТ 2018 ES6+ ЕСТЬ:
const arr = [1, 2, 3];
arr.forEach((val, key, arr) => {
if (Object.is(arr.length - 1, key)) {
// execute last item logic
console.log('Last callback call at index ${key} with value ${val}' );
}
});