我需要在数组循环完成后获得结果并在Node Js项目count
中对此结果执行某些操作,并且我需要在循环完成后检查此变量
var count = 0;
myArray.forEach(element => {
if(element == 'something'){
count++;
}
});
if(count == 2){
// do smth
}else if(count == 1){
// do something else
}else{
// or do this
}
在获得循环结果之前,当前正在实现if
语句。
答案 0 :(得分:3)
除非您在forEach
的每次迭代中执行异步操作,否则可以将代码缩短为
var count = myArray.filter(s => s == "something").length
或等同于
的东西var f = str => str == "something"
var count = myArray.filter(f).length
答案 1 :(得分:0)
已经提供的过滤器解决方案可能是最好的方法!也就是说,这里有更多背景信息:
forEach在if块之前发生的原因是因为forEach使用了一个回调,该回调被传递给Node的事件循环以便稍后执行(我建议对事件循环进行一些研究!非常有帮助知道)。
与您同步运行的最类似方法将是循环的标准:
Salary: 123 €