我有这个对象数组,我想转换:
let ordNumbers = [
{"seq":1,"ordNumber":"221"},
{"seq":1,"ordNumber":"224"},
{"seq":2,"ordNumber":"221"}
]
到此格式
let filteredOrders = [
{"seq":[1,2],"ordNumber":"221"},
{"seq":1,"ordNumber":"224"}
]
根据订单号,我想要上述格式
你的意思是这样?
var ordNumbers = [
{
"seq": 1,
"ordNumber": "221"
},
{
"seq": 1,
"ordNumber": "224"
},
{
"seq": 2,
"ordNumber": "221"
}
]
// formatted as { ordNumber: [seq] }
var pairs = ordNumbers.reduce((acc, v) => {
acc[v.ordNumber] = (acc[v.ordNumber] || []).concat(v.seq);
return acc;
}, {});
// formatted as [{"seq": [seqs], "ordNumber": ordNumber}]
var res = Object.keys(pairs).map(v => ({
seq: pairs[v],
ordNumber: v
}));
console.log(res);
let ordNumbers = [
{"seq":1,"ordNumber":"221"},
{"seq":1,"ordNumber":"224"},
{"seq":2,"ordNumber":"221"}
]
let ordMap = {}
for (let el of ordNumbers) {
// if the ordNumber exists in the map then pushing el.seq to it's value else setting el.seq as
// the value
ordMap[el.ordNumber] = ordMap[el.ordNumber] ? [...ordMap[el.ordNumber], el.seq] : [el.seq]
}
const result = Object.keys(ordMap).map(val => ({seq: ordMap[val], ordNumber: val}));
console.log(result)