你怎么能在 JavaScript 中做 a break
of a呢?Array.forEach
在 JavaScript 中使用“for”循环时,break
用于中断循环。
FromECMA 5.1
出现了使用Array.forEach
to iterate over的可能性array
,但是你怎么能break
在这种类型的循环中做 a 呢?
让我们看两个示例,其中尝试中断 Array.forEach 循环"return"
并没有给出预期的结果:
const firstElems_LenOne_V1 = (arr) => {
let rta = []
for (let i=0; i<arr.length;i++) {
let e=arr[i]
if (e.length>1) break
rta.push(e)
}
return rta
}
const firstElems_LenOne_V2 = (arr) => {
let rta = []
arr.forEach(e=>{
if (e.length==1) return // break forEach?
rta.push(e)
})
return rta
}
let v1= firstElems_LenOne_V1(["a","b","cc","d"])
let v2= firstElems_LenOne_V2(["a","b","cc","d"])
console.log(v1) // OK: expect [a,b] got [a,b]
console.log(v2) // KO: expect [a,b] got [cc]
如何break
在 Javascript 中执行 array.forEach 内部?
forEach文档有一个注释,
forEach
除非它是 a ,否则无法停止或杀死 aException
,如果你想这样做,该方法forEach
将无法解决问题。相反,如果您需要返回一个值或只是像这种情况下的简单迭代,他们建议使用some() 。boleano
自定义异常
该方法
Array.forEach
没有提供停止迭代的系统。但是,您可以使用Array.some
可以返回的功能false
来做您想做的事情。例子:
结果: