Node Js如何等待forEach执行并得到计数结果

时间:2018-03-16 13:30:29

标签: javascript node.js foreach

我需要在数组循环完成后获得结果并在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语句。

2 个答案:

答案 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 €