Javascript Lodash u2;过滤器如何在数组中查找同级
我在识别数组内部和数组中定义的对象时没有任何运气 我有以下数据Javascript Lodash u2;过滤器如何在数组中查找同级,javascript,arrays,lodash,Javascript,Arrays,Lodash,我在识别数组内部和数组中定义的对象时没有任何运气 我有以下数据 var values = [ { "letter": "S", "clients": [ { "_id": "58f61681e32f1927a41c19bf", "firstName": "Shelly", "lastName": "R", } ] }, { "letter": "G", "clients": [ {
var values =
[
{
"letter": "S",
"clients": [
{
"_id": "58f61681e32f1927a41c19bf",
"firstName": "Shelly",
"lastName": "R",
}
]
},
{
"letter": "G",
"clients": [
{
"_id": "58f2ab99319e35299b1ee4a9",
"firstName": "Gary",
"lastName": "R",
}
]
}
]
下面是lodash的电话
var identifier = '58f2ab99319e35299b1ee4a9';
var v = _.filter(values, {clients: [{_id: identifier}]});
我读到的应该与嵌套数组一起使用。
我是不是遗漏了什么
我在角组件布线场景中使用了这个u.过滤器
虽然values.clients对象包含更多信息。我用实际输出代替了那把小提琴,它成功了。返回了一个实例。然而,下面的代码并没有
}).state('clients.client', {
url: '/{clientId}',
component: 'client',
resolve: {
client : function(rolodex, $stateParams, _){
//var values = rolodex;
//console.log(JSON.stringify(values));
var identifier = $stateParams.clientId;
var v = _.filter(rolodex, {clients: [{_id: identifier}]});
console.log(v[0].clients[0]);
return v[0].clients[0];
}
}
});
G
我想我很快就和你谈过了,这个lodash脚本不能正常工作。
如果我的辅助数组包含多个条目,我将在结果集中获得两个条目
[
{
"letter": "C",
"clients": [
{
"_id": "58f6b8a932edbb7dd718f05a",
"firstName": "Casie",
"lastName": "L"
},
{
"_id": "58f68b0d527cc336a8f86cc8",
"firstName": "Chad",
"lastName": "M"
}
]
},
{
"letter": "G",
"clients": [
{
"_id": "58f2ab99319e35299b1ee4a9",
"firstName": "Gary",
"lastName": "R"
}
]
},
{
"letter": "J",
"clients": [
{
"_id": "58f6b90032edbb7dd718f05c",
"firstName": "Jett",
"lastName": "F"
}
]
},
{
"letter": "S",
"clients": [
{
"_id": "58f61681e32f1927a41c19bf",
"firstName": "Shelly",
"lastName": "R"
},
{
"_id": "58f6b8d632edbb7dd718f05b",
"firstName": "Shirley",
"lastName": "A"
}
]
}
]
提供包含正确id的正确数组
[
{
"letter": "S",
"clients": [
{
"_id": "58f61681e32f1927a41c19bf",
"firstName": "Shelly",
"lastName": "R"
},
{
"_id": "58f6b8d632edbb7dd718f05b",
"firstName": "Shirley",
"lastName": "A"
}
]
}
]
但我希望我的结果是这样的
{
"_id": "58f61681e32f1927a41c19bf",
"firstName": "Shelly",
"lastName": "R"
}
这可能是我的答案
var b = _(data).thru(function(col1){
return _.union(col1, _.map(col1, 'clients'));
})
.flatten()
.find({_id : '58f61681e32f1927a41c19bf'});
这一方法目前似乎有效
var b = _(data).thru(function(col1){
return _.union(col1, _.map(col1, 'clients'));
})
.flatten()
.find({_id : '58f61681e32f1927a41c19bf'});
这是Angular的不可知论。这应该有效,你的正确答案是它确实有效,但在我的代码中似乎不太有效。BRB提琴使用的是lodash 3.6我使用的是4.17.4好的,用4.17.4代替了3.6,它可以工作,一定是有些变化