Javascript 从对象数组中查找对象,其中键来自另一个数组

Javascript 从对象数组中查找对象,其中键来自另一个数组,javascript,arrays,underscore.js,Javascript,Arrays,Underscore.js,我很惊讶能为我的javascript代码找到正确的对象。 我有两个数组 var filters = [{"name":"hello","value":"xyz"},{"name":"hello2","value":"abc"}] var keys = ["hello","hello2"] 我想找到名为“hello”的对象。 我正在尝试使用下划线.js var selectedObj = _.findWhere(filters , { name: ??? }); 我无法直接传递“hello”/

我很惊讶能为我的javascript代码找到正确的对象。 我有两个数组

var filters = [{"name":"hello","value":"xyz"},{"name":"hello2","value":"abc"}]
var keys = ["hello","hello2"]
我想找到名为“hello”的对象。 我正在尝试使用下划线.js

var selectedObj = _.findWhere(filters , { name: ??? });
我无法直接传递“hello”/key[0]。我必须使用密钥数组来填充“?”

请帮忙


提前感谢。

使用“查找”而不是“查找”在此处:

    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是为您希望匹配键值对的特殊情况而设计的(在您的场景中不有用,因为它涉及嵌套对象)。Find更通用,因为它允许您提供一个函数作为谓词。

只是
\u.findWhere(过滤器,{name:keys[0]})您希望它如何工作?你想通过什么考试?这可以很容易地定制。谢谢。我对连接对象数组和字符串有点困惑。