javascript - 在 map() 之后只调用一次函数

标签 javascript node.js

我在 Nodejs 上遇到问题,我只需要在 item.IS_RACING === 1 时调用一次函数

    _.map(recordsets, function(items) {
      return _.map(items, function(item) {
        if (item.IS_RACING === 1) {
          _this.getRacing();
        }
      });
    });

我有 _this.getRacing(); 每次条件为 true 时都会被调用,但是如果有 20 个项目 IS_RACING === 1,所以函数 _this.getRacing(); 将被调用 20 次。我需要类似的东西,一旦应用程序检测到第一个 IS_RACING === 1 出现,然后仅触发一次 _this.getRacing();

有什么推荐吗?

最佳答案

正如 Pointy 在评论中指出的(抱歉),您真的不想使用 map() 来执行此操作。

从如何向其他开发人员解释问题的 Angular 来思考问题。

If any of the record sets has an item that is racing, I want to call getRacing().

现在,编写代表您意图的代码。

var somethingIsRacing = _.some(recordsets, function(items) {
  return _.some(items, function(item) {
    return item.IS_RACING === 1;
  });
});
if(somethingIsRacing) {
  _this.getRacing();
}

此代码遵循称为命令查询分离的原则,您首先使用函数式编程风格查询以查找所需信息,然后使用命令式编程风格。

关于javascript - 在 map() 之后只调用一次函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34500670/

相关文章:

php - 在 JavaScript 中将字符串转换为数组

javascript - 如何读取react应用程序中当前的URL

javascript - 获取 JSON 流的内容

javascript - javascript 中的 Django 模板值

javascript - 通过使用 javascript 转换数据类型从字符串创建数组

node.js - 如何修复警告 : Application ID is not set?

javascript - Cassandra - 类型错误 : "value" argument is out of bounds

node.js - 如何连接到 docker 容器的本地主机(从容器内部)

node.js - Ubuntu 18,PM2 和 NGinx 冲突(使用中的错误地址)

javascript - 如何使用 JavaScript 检查外部页面上是否存在字符串?