[1,2,3].forEach(function(el) { if(el === 1) break;}); 如何使用 JavaScript 中的新 forEach 方法执行此操作?我尝试过 return;、return false; 和 break。break 崩溃,return 正常
[1,2,3].forEach(function(el) {
if(el === 1) break;
});
我该如何使用 forEach
JavaScript 中的新方法来实现这一点?我试过了 return;
, return false;
, break
. break
崩溃了, return
除了继续迭代什么也没做。
在 ECMAScript2015 (又名 ES6) 中,现在有更好的方法来实现这一点,即使用新的 for of 循环 。例如,此代码不会打印数字 5 之后的数组元素:
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (const el of arr) {
console.log(el);
if (el === 5) {
break;
}
}
来自文档:
for ...in 和 ...of 语句都会对某些内容进行迭代。它们之间的主要区别在于迭代的内容。for ...in 语句会按原始插入顺序迭代对象的可枚举属性。for for...of 语句会迭代可迭代对象定义的要迭代的数据。
需要迭代中的索引?你可以使用 Array.entries()
:
for (const [index, el] of arr.entries()) {
if ( index === 5 ) break;
}