让 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))
如果有一个使用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))