【发布时间】:2020-08-25 20:49:09
【问题描述】:
这是一个组合列表,具有唯一的年龄代码。
[
{
"ageCode": 1,
"ageDesc": "0-4",
"qM": 358,
"sM": 158,
"qF": 328,
"sF": 258
},
{
"ageCode": 3,
"ageDesc": "15-59",
"qM": 525,
"sM": 125
},
{
"ageCode": 4,
"ageDesc": "60+",
"qF": 458,
"sF": 358
}
]
需要根据年龄代码的 M 和 F 值是否都存在,将组合列表拆分为单个对象。转换后的列表如下所示。如果没有“M”日期,则不会有“性别”的对象:“M”同样适用于“F”
[
{
"ageCode": 1,
"ageDesc": "0-4",
"q": 358,
"s": 158,
"gender": "M"
},
{
"ageCode": 1,
"ageDesc": "0-4",
"q": 328,
"s": 258,
"gender": "F"
},
{
"ageCode": 3,
"ageDesc": "15-59",
"q": 525,
"s": 125,
"gender": "M"
},
{
"agCode": 4,
"ageDesc": "60+",
"q": 458,
"s": 358,
"gender": "F"
}
]
已尝试的解决方案:
for(let item of this.ageData) {
if (this.ageData.find((i) => { i.agCode=== item.agCode})){
//}
}
这里需要重复和多个for循环等问题,有没有有效的方法来实现这一点。
【问题讨论】:
-
请显示预期结果。
-
@aepifano [ { "ageCode": 1, "ageDesc": "0-4", "q": 358, "s": 158, "gender": "M" }, { “ageCode”:1,“ageDesc”:“0-4”,“q”:328,“s”:258,“gender”:“F”},{“ageCode”:3,“ageDesc”:“15 -59”,“q”:525,“s”:125,“性别”:“M”},{“agCode”:4,“ageDesc”:“60+”,“q”:458,“s” :358,“性别”:“F”}]
标签: javascript angular typescript angular7 angular8