catch for每个最后一次迭代

2022-08-30 05:16:03
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


答案 2

2021年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}` ); 
      }
    });