我需要编写一个过滤函数,允许我通过嵌套对象进行查询,如下所示:
var data = [
{ twitter: { id: 1, name: "Bob" } },
{ twitter: { id: 2, name: "Jones" } }
],
query = { 'twitter.id': 1 };
# Perform filter using data and query variables
var search = …
console.log(search);
> ["0"]
过滤器应返回与查询匹配的索引数组。
我目前在http://jsbin.com/umeros/2/edit没有嵌套对象支持的情况下工作。
但是,我希望能够查询嵌套对象,例如上面看到的query
。
答案 0 :(得分:1)
使用this answer中的ref
功能,您的过滤器应如下所示:
var search = _.filter(_.keys(data), function (key) {
var obj = data[key];
return _.every(query, function (val, queryKey) {
return ref(obj, queryKey) === val;
});
});