从key来自另一个数组的对象数组中查找对象

时间:2017-02-09 09:01:32

标签: javascript arrays underscore.js

我很想找到我的javascript代码的正确对象。 我有2个阵列。

var filters = [{"name":"hello","value":"xyz"},{"name":"hello2","value":"abc"}]
var keys = ["hello","hello2"]

我想找到名称为“hello”的对象。 我正在尝试使用underscore.js

var selectedObj = _.findWhere(filters , { name: ??? });

我无法直接传递“hello”/ key [0]。我必须使用keys数组来填充“???”。

请帮忙。

先谢谢。

1 个答案:

答案 0 :(得分:0)

使用_.find而不是findWhere:

    var result = [];
_.each(keys, function (key) {
    _.find(filters, function (item) {
        //loop through array , check key and return object
        if (key === item.name)
            result.push(item);
    });
});

它们是相似的,但是findWhere设计用于您想要匹配键值对的特殊情况(在您的场景中没有用,因为它涉及嵌套对象)。查找更通用,因为它允许您提供函数作为谓词。