如何将数组中某个索引后的所有对象组合到同一个对象
How do I combine all objects after a certain index in an array to the same object
美好的一天,希望有人能提供帮助。
我有一组看起来像这样的对象,我希望稍微减少这些对象:
[
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "BE",
"totalReclaimPotential": 2506.0360930000006
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "DK",
"totalReclaimPotential": 1932.5224279999995
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "PT",
"totalReclaimPotential": 586.8
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "NL",
"totalReclaimPotential": 569.1673320000001
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "CH",
"totalReclaimPotential": 544.3347689999999
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "ES",
"totalReclaimPotential": 453.127841
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "KR",
"totalReclaimPotential": 448.640522
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "TW",
"totalReclaimPotential": 204.25425299999998
},
]
我想做的是将索引 3 之后的所有对象合并到同一个对象中。它应该看起来像这样:
[
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "BE",
"totalReclaimPotential": 2506.0360930000006
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "DK",
"totalReclaimPotential": 1932.5224279999995
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "PT",
"totalReclaimPotential": 586.8
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "NL",
"totalReclaimPotential": 569.1673320000001
},
{
"entityName": "Other Entities",
"countryCode": "",
"totalReclaimPotential": <Total of all merged objects>
},
]
如何使用 Angular/Typescript 实现此目的?
let shortenArrToLength = 4;
let total = 0;
values.map((obj, index) => {
if(index < shortenArrToLength) {
return;
}
total += obj['totalReclaimPotential'];
})
values.length = shortenArrToLength;
values.push({
"entityName": "Other Entities",
"countryCode": "",
"totalReclaimPotential": total
})
console.log(values);
const data = [{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "BE",
"totalReclaimPotential": 2506.0360930000006
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "DK",
"totalReclaimPotential": 1932.5224279999995
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "PT",
"totalReclaimPotential": 586.8
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "NL",
"totalReclaimPotential": 569.1673320000001
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "CH",
"totalReclaimPotential": 544.3347689999999
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "ES",
"totalReclaimPotential": 453.127841
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "KR",
"totalReclaimPotential": 448.640522
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "TW",
"totalReclaimPotential": 204.25425299999998
},
]
const result = data.slice(0, 4).concat(data.slice(4).reduce((acc, cur) => {
acc.totalReclaimPotential += cur.totalReclaimPotential;
return acc;
}, {
entityName: "Other Entities",
countryCode: "",
totalReclaimPotential: 0
}));
console.log('result:', result);
美好的一天,希望有人能提供帮助。
我有一组看起来像这样的对象,我希望稍微减少这些对象:
[
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "BE",
"totalReclaimPotential": 2506.0360930000006
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "DK",
"totalReclaimPotential": 1932.5224279999995
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "PT",
"totalReclaimPotential": 586.8
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "NL",
"totalReclaimPotential": 569.1673320000001
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "CH",
"totalReclaimPotential": 544.3347689999999
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "ES",
"totalReclaimPotential": 453.127841
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "KR",
"totalReclaimPotential": 448.640522
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "TW",
"totalReclaimPotential": 204.25425299999998
},
]
我想做的是将索引 3 之后的所有对象合并到同一个对象中。它应该看起来像这样:
[
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "BE",
"totalReclaimPotential": 2506.0360930000006
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "DK",
"totalReclaimPotential": 1932.5224279999995
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "PT",
"totalReclaimPotential": 586.8
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "NL",
"totalReclaimPotential": 569.1673320000001
},
{
"entityName": "Other Entities",
"countryCode": "",
"totalReclaimPotential": <Total of all merged objects>
},
]
如何使用 Angular/Typescript 实现此目的?
let shortenArrToLength = 4;
let total = 0;
values.map((obj, index) => {
if(index < shortenArrToLength) {
return;
}
total += obj['totalReclaimPotential'];
})
values.length = shortenArrToLength;
values.push({
"entityName": "Other Entities",
"countryCode": "",
"totalReclaimPotential": total
})
console.log(values);
const data = [{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "BE",
"totalReclaimPotential": 2506.0360930000006
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "DK",
"totalReclaimPotential": 1932.5224279999995
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "PT",
"totalReclaimPotential": 586.8
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "NL",
"totalReclaimPotential": 569.1673320000001
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "CH",
"totalReclaimPotential": 544.3347689999999
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "ES",
"totalReclaimPotential": 453.127841
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "KR",
"totalReclaimPotential": 448.640522
},
{
"entityName": "0015J00000BUWbHQAX",
"countryCode": "TW",
"totalReclaimPotential": 204.25425299999998
},
]
const result = data.slice(0, 4).concat(data.slice(4).reduce((acc, cur) => {
acc.totalReclaimPotential += cur.totalReclaimPotential;
return acc;
}, {
entityName: "Other Entities",
countryCode: "",
totalReclaimPotential: 0
}));
console.log('result:', result);