typescript 为什么Map的forEach返回时不中断[duplicate]

iibxawm4  于 2022-11-30  发布在  TypeScript
关注(0)|答案(1)|浏览(178)
    • 此问题在此处已有答案**:

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不中断或返回?

k97glaaz

k97glaaz1#

.forEach方法接受一个函数作为参数,该参数将在可迭代对象的 * 每个 * 元素上调用。
关键字return结束了它的函数的当前执行,这就是为什么你不能用一个简单的return退出forEach,它只会退出当前的函数调用,它不会退出forEach

相关问题