需求
- 后台返回的数据没有合并(后台数据id相同的顺序排列)
- 数据中有的属性不同
思路:
要有一个存放旧数据的变量 进行比较
- 定义两个数组:
①newlist = 最终的数据
②oldobj = 存放对象- 循环原本数组
① 判断obj中的id是否与当前原数据的id相等
相等:将同id不同的属性放入
不相等:push(当前元素) oldobj = 当前元素
// 数据结构
list: [
{
number: 1,
name: "book",
amount: 4,
timeLimit: [
{ day: "101天", amount: 4 },
{ day: "102天", amount: 1 },
{ day: "103天", amount: 1 },
],
},
{
number: 1,
name: "book",
amount: 1,
timeLimit: [
{ day: "2天", amount: 1 },
{ day: "2年", amount: 1 },
],
},
{
number: 1,
name: "book",
amount: 1,
timeLimit: [
{ day: "2年", amount: 1 }
],
},
{
number: 2,
name: "wb",
amount: 1,
timeLimit: [
{ day: "3年", amount: 1 },
{ day: "1年", amount: 1 },
],
},
{
number: 2,
name: "wb",
amount: 1,
timeLimit: [
{ day: "1天", amount: 1 }
],
},
],
handlePresentData(list) {
let handleList = [];
let oldobj = {};
for (let i = 0; i < list.length; i++) {
if (list[i].number != oldobj.number) {
let obj = {
number: list[i].number,
name: list[i].name,
amount: list[i].amount,
timeLimit: list[i].timeLimit
};
handleList.push(obj);
oldobj = obj;
} else {
let obj = list[i].timeLimit
oldobj.timeLimit.push(...obj);
}
}
console.log(handleList);
},