我没有运气识别数组内部和数组中定义的对象。
我有以下数据
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}]});
我读过的应该适用于嵌套数组。 我在这里错过了什么吗?
我在角度组件路由方案中使用此_.filter。
尽管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'});
答案 0 :(得分:0)
这种方法似乎适用于平均时间。
var b = _(data).thru(function(col1){
return _.union(col1, _.map(col1, 'clients'));
})
.flatten()
.find({_id : '58f61681e32f1927a41c19bf'});