Javascript 使用reduce.call时未初始化累加器

Javascript 使用reduce.call时未初始化累加器,javascript,Javascript,为什么我的累加器没有初始化?我一直没有定义 var S = "SOSSTSROS"; var radiatedLetters = Array.prototype.reduce.call(S,function(acc,curr){ if(!curr.match(/[SO]/)){ acc++; } },0); console.log(radiatedLetters); 你需要,而不是变异它: var S=“SOSSTSROS”; var

为什么我的累加器没有初始化?我一直没有定义

var S = "SOSSTSROS";

var radiatedLetters = Array.prototype.reduce.call(S,function(acc,curr){
    if(!curr.match(/[SO]/)){
        acc++;            
    }
},0);
console.log(radiatedLetters);
你需要,而不是变异它:

var S=“SOSSTSROS”;
var radiatedLetters=Array.prototype.reduce.call,函数(acc,curr){
如果(!curr.match(/[SO]/)){
返回acc+1;
}否则{
返回acc;
}
}, 0);

控制台日志(辐射字母)
您需要返回累加器以进行下一次迭代…
函数(acc,curr){return acc+!/S | O/.test(curr)}
@Bergi这看起来不错,从未使用过。以前测试过。谢谢!