让 for...of 跳过循环最后一个元素

Make for...of to skip from looping the last element

如果有一个使用for...of迭代的二维数组,跳过最后一个元素的最佳方法是什么?

例如,有一个数组 arr,正常的方法是:

for(const subArray of arr) { ... }

跳过循环之前可以使用的最后一个元素:arr.slice(0, -1); 工作正常但它删除了应该避免的数据。

有没有办法让它在不丢失数据的情况下跳过最后一个元素?

slice() does not change the array, but returns a new array (unlike splice(),它会改变数组),因此可以安全使用:

for (const subArray of arr.slice(0, -1)) { ... }

您也可以使用生成器:

function* skipLast(array, numOfEntries = 1) {
  for(let i = 0; i < array.length - numOfEntries; i++)
     yield array[i];
}

可用作:

for(const entry of skipLast(array))