[英]Nested Array Object Names
I have the following lodash
function with is grouping data and returning: 我有以下
lodash
函数用于将数据分组并返回:
[
{
"tranid": "100",
"trandate": "2019-08-20T07:00:00.000Z",
"account": "1",
"currency": "1",
"departement": "1",
"location": "1",
"list": [ "1", "2" ]
},
{
"tranid": "200",
"trandate": "2019-08-20T07:00:00.000Z",
"account": "1",
"currency": "1",
"departement": "1",
"location": "1",
"list": [ "3", "1260" ]
}
]
However I'd really like to have it return: 但是我真的很想让它返回:
[
{
"tranid": "100",
"trandate": "8/20/2019",
"account": "1",
"currency": "1",
"departement": "1",
"location": "1",
"list": [
{ "docnumber": "1" },
{ "docnumber": "2" }
]
},
{
"tranid": "200",
"trandate": "8/20/2019",
"account": "1",
"currency": "1",
"departement": "1",
"location": "1",
"list": [
{ "docnumber": "3" },
{ "docnumber": "1260" }
]
}
]
Specifically the part that I'm stuck on is how to make: 具体来说,我坚持的部分是如何制作:
"list":["1","2"]
turn into 变成
"list":[{"docnumber":"1"},{"docnumber":"2"}].
I know list: _.map(v, 'docnumber')
in the group function needs to change but can't quite figure out how. 我知道
list: _.map(v, 'docnumber')
group函数中的list: _.map(v, 'docnumber')
需要更改,但无法完全确定。 Any help would be great, thank you. 任何帮助都会很棒,谢谢。
function group(data) {
var group = lo(data).chain(data).groupBy("tranid").map(function(v,i) {
return {
tranid: i,
processed: _.get(_.find(v, 'processed'), 'processed'),
trandate: _.get(_.find(v, 'trandate'), 'trandate'),
account: _.get(_.find(v, 'account'), 'account'),
currency: _.get(_.find(v, 'currency'), 'currency'),
departement: _.get(_.find(v, 'departement'), 'departement'),
location: _.get(_.find(v, 'location'), 'location'),
list: _.map(v, 'docnumber')
}
}).value();
return group;
}
Pass the function in like so: 像这样传递函数:
list: _.map(v, docnumber => ({ docnumber }));
This takes use of ES6 object notation shorthand. 这利用了ES6对象符号的简写形式。 In vanilla JavaScript it would be:
在普通JavaScript中,它将是:
list: v.map(docnumber => ({ docnumber }));
And in ES5, it would be: 在ES5中,它将是:
list: v.map(function(n) {
return {
docnumber: n
};
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.