//原数据
let newArr = [
{name: '相当精准包(10分钟)', packGoodsId: 301},
{name: '相当精准包(12分钟)', packGoodsId: 301},
{name: '相当精准包(11分钟)', packGoodsId: 301},
{name: '相当精准包(20分钟)', packGoodsId: 303},
{name: '相当精准包(20分钟)', packGoodsId: 303},
];
//需要转成下面格式。,在每个packGoodsId为一致的时候,把name拼接下来,保留一个packGoodsId
packTypeList: [
{ "packGoodsId": 301, "name": "相当精准包(10分钟),相当精准包(11分钟),相当精准包(12分钟)" },
{ "packGoodsId": 303, "name": "相当精准包(20分钟),相当精准包(20分钟)" },
],
方法一:
const newArray = newArr.sort((a, b) => { return a.packGoodsId - b.packGoodsId }).reduce((init, cur, index, arr) => {
if (init.length > 0) {
for (let key in { name: '' }) {
if (init[init.length - 1].packGoodsId == cur.packGoodsId) {
init[init.length - 1].name += ' , '+ cur.name
} else {
init.push(cur);
}
console.log(cur,'cur')
}
} else {
init.push(cur);
}
console.log(init,'init')
return init
}, [])
console.log(newArray,'newArray')
方法二
let packGoodsIdList = [];
let newArrList = [];
newArr.forEach((item) => {
if (packGoodsIdList.indexOf(item.packGoodsId) == -1) {
packGoodsIdList.push(item.packGoodsId)
}
})
packGoodsIdList.forEach((item, index) => {
let ojb = {
packGoodsId: item,
name: ''
}
newArr.forEach(items => {
if (item == items.packGoodsId) {
ojb.name += items.name + ' '
}
})
newArrList.push(ojb)
})
console.log(newArrList ,'newArrList ')