我很想找到我的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数组来填充“???”。
请帮忙。
先谢谢。
答案 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设计用于您想要匹配键值对的特殊情况(在您的场景中没有用,因为它涉及嵌套对象)。查找更通用,因为它允许您提供函数作为谓词。