Javascript 从对象数组中查找对象,其中键来自另一个数组
我很惊讶能为我的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”/
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]})代码>您希望它如何工作?你想通过什么考试?这可以很容易地定制。谢谢。我对连接对象数组和字符串有点困惑。