arr = [1,2,3];
arr.forEach(function(i){
// last iteration
});
Jak złapać koniec pętli? Mogę to zrobić, if(i == 3)ale mogę nie wiedzieć, jaki jest numer mojej tablicy.
arr = [1,2,3];
arr.forEach(function(i){
// last iteration
});
Jak złapać koniec pętli? Mogę to zrobić, if(i == 3)ale mogę nie wiedzieć, jaki jest numer mojej tablicy.
Odpowiedzi:
Zaktualizowana odpowiedź na ES6 + jest tutaj .
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 );
}
});
wyświetli:
Last callback call at index 2 with value 3
Sposób, w jaki to działa, polega na sprawdzaniu arr.lengthbieżącego indeksu tablicy przekazanego do funkcji zwrotnej .
ODPOWIEDŹ 2018 ES6 + JEST :
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}` );
}
});
Object.isdo czegoś tak prostego, jak oddzielenie dwóch liczb całkowitych (które nie mogą być nawet -0 lub NaN) jest zdecydowanie nieuporządkowane. Powiedz mi, @SterlingBourne, jakie są korzyści?
const arr= [1, 2, 3]
arr.forEach(function(element){
if(arr[arr.length-1] === element){
console.log("Last Element")
}
})
let o = { val:"ue" } ; let arr = [ o, 1, o ]; ...niestety pierwsza iteracja będzie miałaarr[arr.length-1] === element
arrjest już w zakresie jako zamknięcie dla każdego wywołania zwrotnego