- 此问题在此处已有答案**:
Short circuit Array.forEach like calling break(30个答案)
3小时前关门。
以便在Typescript中迭代Map。forEach
不会被中断。奇怪的是,键和值必须颠倒。for
工作正常。
const map = new Map<number, number>()
const uniq = new Set<number>();
// won't return anything if condition is true
map.forEach( (v,k) => { // moreover , k and v are inverted
if(uniq.has(v)) return false
uniq.add(v)
});
// will work
for (const [_, v] of map.entries()) {
if(uniq.has(v)) return false
uniq.add(v)
}
为什么forEach
不中断或返回?
1条答案
按热度按时间k97glaaz1#
.forEach
方法接受一个函数作为参数,该参数将在可迭代对象的 * 每个 * 元素上调用。关键字
return
结束了它的函数的当前执行,这就是为什么你不能用一个简单的return
退出forEach
,它只会退出当前的函数调用,它不会退出forEach
。