在JavaScript中破坏forEach方法的首选方法

opt*_*mus 0 javascript arrays

我只是forEach在JavaScript中使用方法来总结数组中的所有元素.突然感到需要在某些条件下突破循环,例如限制要计算的总和.我想出了以下解决方案.如果我错了,请指出我.

小编辑

function foreach(a) {
 var sum = 0;
 var breakException = {error:"stop it"};
 try {
    a.forEach(function (v) {
        sum += v;
        console.log(sum);
        if(sum>5) throw breakException.error;
    });
    return sum;
}
catch(e) {
    if(e!=breakException){
        throw e;
    }
}
}
Run Code Online (Sandbox Code Playgroud)

Par*_*ris 6

forEach不应该打破.如果你想打破一个类似forEach的循环,尝试everysome,这可以让你摆脱循环.

重写代码的可能方法可能是

var sum = 0;

yourArray.some(function (item) {
    if (sum > 5) {
        return true;
    }
    sum += item;
});
Run Code Online (Sandbox Code Playgroud)