需求为执行任务表格中对正在执行的任务进行进度更新。不改变其余未在执行中的数据。
因此需要将一个数组中的某些满足条件的对象更新为一个新数组中的对应对象。
const data = [
{id:1,name:'a'},
{id:2,name:'b'},
{id:3,name:'c'},
{id:4,name:'d'},
{id:5,name:'e'},
];
const replaceData = [
{id:1,a:'aaa'},
{id:2,c:'ccc'},
{id:3,e:'eee'},
];
const newData = [];
for (let i = 0; i < data.length; i++) {
if (replaceData.some(item => item.id== data[i].id)) {
arr.push(replaceData.find(item => item.id== data[i].id));
} else {
arr.push(data[i]);
}
}
console.log(newData)
/**
* newData= [
* {id:1,name:'aaa'},
* {id:2,name:'b'},
* {id:3,name:'ccc'},
* {id:4,name:'d'},
* {id:5,name:'eee'},
* ];
*/