比较JavaScript对象数组并设置特定值,适用于从主数组源添加和删除的情况
创始人
2024-12-13 18:00:15
0

我们可以使用循环和一些内置函数来比较两个对象数组并设置特定值,以处理添加和删除操作。下面是一个示例代码:

let mainArray = [ { id: 1, name: 'John', age: 20 }, { id: 2, name: 'Jane', age: 25 }, { id: 3, name: 'Bob', age: 30 } ];

let updatedArray = [ { id: 1, name: 'John Doe', age: 21 }, { id: 2, name: 'Jane', age: 25 }, { id: 4, name: 'Alice', age: 35 } ];

//处理添加项目 const addedItems = updatedArray.filter(item => !mainArray.find(itm => itm.id === item.id)); addedItems.forEach(item => item.created = true);

//处理删除项目 const deletedItems = mainArray.filter(item => !updatedArray.find(itm => itm.id === item.id)); deletedItems.forEach(item => item.deleted = true);

//更新或添加项目 updatedArray.forEach(item => { const mainItem = mainArray.find(itm => itm.id === item.id); if (mainItem) { //如果找到匹配项,则更新值 Object.keys(item).forEach(key => { mainItem[key] = item[key]; }); } else { //如果没有找到匹配项,则添加新项目 item.added = true; mainArray.push(item); } });

console.log(mainArray); // [{ id: 1, name: 'John Doe', age: 21 }, { id: 2, name: 'Jane', age: 25 }, { id: 3, name: 'Bob', age: 30 }, { id: 4, name: 'Alice', age: 35, added: true }] console.log(addedItems); // [{ id: 4, name: 'Alice', age: 35, added: true }] console.log(deletedItems); // [{ id: 3, name: 'Bob', age: 30, deleted: true }]

相关内容

热门资讯

透视辅助!微扑克都是是真的有挂... 透视辅助!微扑克都是是真的有挂,微扑克数据切实是真的有挂(详细ai机器人教程)1、系统规律教程、辅助...
7分钟了解!微扑克透视辅助神器... 7分钟了解!微扑克透视辅助神器,微扑克有辅助挂好像真的是有挂(详细游戏辅助器教程);1、微扑克有辅助...
一起来讨论!德扑ai有挂总是,... 一起来讨论!德扑ai有挂总是,德扑开发好像是有挂(详细隐藏教程)是一款可以让一直输的玩家,快速成为一...
wepoke插件!wepoke... wepoke插件!wepoke怎么来好牌,(wepoke实锤)果然真的是有挂(详细有挂教程)1、快速...
透视辅助!aapoKer原来是... 透视辅助!aapoKer原来是真的有挂,aa扑克平台确实是有挂(详细辅助工具教程);1、构建自己的辅...
今日重大通报!德扑ai辅助挂,... 今日重大通报!德扑ai辅助挂,德扑助手总是是真的有挂(详细ai人工智能教程)亲,关键说明,赛季回归,...
透视辅助!wpk开挂实锤,(w... 透视辅助!wpk开挂实锤,(wpk透视)确实是真的有挂(详细外卦挂教程)是一款可以让一直输的玩家,快...
透视辅助!aapoker安卓版... 透视辅助!aapoker安卓版辅助,aapoker模拟器其实有挂(详细辅助工具教程)是一款可以让一直...
透视辅助!WpK辅助教程,德州... 您好,这款游戏可以开挂的,确实是有挂的,需要了解加微【757446909】很多玩家在这款游戏中打牌都...
透视辅助!wpK本来是有挂,W... 透视辅助!wpK本来是有挂,WPK黑科技切实有挂(详细ai辅助教程)1、起透看视 透明视辅助2、随意...