我有嵌套的对象数组,在其中我想创建一个格式为-combine所有从cn_from的对象,组合所有的cn_to与各自的id到新的对象。我想知道如何使用javascript
已尝试
var result = getObj(obj);
getObj(obj) {
var getallsrc = obj.map(e => e.cn_from.map(i => [i.cn]));
var getalltar = obj.map(e => e.cn_to.map(i => [i.cn]));
var newobj = [];
newobj.push({ source:getallsrc });
newobj.push({ source:getalltar });
return newobj;
}输入:
var obj = [
{
"id": "trans",
"cn_from":[{
"cn": "TH",
"ccy": "THB"
},{
"cn": "IN",
"ccy": "INR"
}],
"cn_to":[{
"cn": "AU",
"ccy": "AUD"
},{
"cn": "CA",
"ccy": "CAD"
}]
},
{
"id": "fund",
"cn_from":[{
"cn": "US",
"ccy": "USD"
}],
"cn_to":[{
"cn": "GB",
"ccy": "GBP"
},{
"cn": "PL",
"ccy": "PLD"
}]
}
]预期输出:
[{
"id": "trans",
"source": ["TH","IN"],
"target": ["AU", "CA"]
},{
"id": "fund",
"source": ["US"],
"target": ["GB", "PL"]
}]发布于 2019-08-22 16:31:30
它将为您提供您期望的输出。
obj.map(x => ({ id: x.id, source: x.cn_from.map(x => x.cn), target: x.cn_to.map(x => x.cn) }))发布于 2019-08-22 16:29:08
您希望id、source和target都在同一个对象中-使用如下所示的简单内容。还要确保在obj上使用map,因为它是一个数组。
function getObj(obj) {
return obj.map(({ id, cn_from, cn_to }) => ({ id, source: cn_from.map(({ cn }) => cn), target: cn_to.map(({ cn }) => cn)}));
}发布于 2019-08-22 16:31:43
function getObj(obj) {
return obj.map((e) => {
return {
id: e.id,
source: e.cn_from.map((x) => x.cn),
target: e.cn_to.map((x) => x.cn)
};
});
}
var obj = [{
"id": "trans",
"cn_from": [{
"cn": "TH",
"ccy": "THB"
}, {
"cn": "IN",
"ccy": "INR"
}],
"cn_to": [{
"cn": "AU",
"ccy": "AUD"
}, {
"cn": "CA",
"ccy": "CAD"
}]
},
{
"id": "fund",
"cn_from": [{
"cn": "US",
"ccy": "USD"
}],
"cn_to": [{
"cn": "GB",
"ccy": "GBP"
}, {
"cn": "PL",
"ccy": "PLD"
}]
}
];
console.log(getObj(obj))
https://stackoverflow.com/questions/57605026
复制相似问题