更改对象上的循环以更好地运行

时间:2015-08-03 18:46:58

标签: javascript underscore.js lodash

我获取以下对象数组并找到特定对象属性的匹配项 这是数组

我试图查找路径是否等于reqPath,如果是,则退出并返回true。

 {
      "prov": [
        {
          "sa": {
            "path": "test2",
            "fn": "save"

          },
          "del": {
            "path": "test1",
            "fn": "delete"
          }
        }

  ]
}

以下代码正常工作但我的问题是有一种方法可以使用loadash或其他工具更好/更好地编写它?

validatePath: function (configs, reqPath) {
        var isValid = false;
        _.each(configs, function (config) {
            _.each(config, function (providers) {
                providers.forEach(function (keys) {
                    _.each(keys, function (properties) {
                        if (properties.path === reqPath) {
                            isValid = true;
                        }
                    });
                });
            });
        });
        return isValid;
    }
};

1 个答案:

答案 0 :(得分:0)

var passed = _.filter(configs, function(config) {
    return config.prov.some(function(obj) {
        return obj.path === reqPath;
    });
});

这将过滤那些具有至少一个通过过滤器的属性对象的提供者的配置。

相关问题