0

我需要编写一个过滤器函数,允许我通过嵌套对象进行查询,如下所示:

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上面看到的。

4

1 回答 1

1

使用此答案ref中的函数,您的过滤器应如下所示:

var search = _.filter(_.keys(data), function (key) {
    var obj = data[key];
    return _.every(query, function (val, queryKey) {
        return ref(obj, queryKey) === val;
    });
});
于 2013-02-24T21:30:35.180 回答