You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何用forEach遍历两个数组同步对象expended属性值

实现代码

你可以直接使用以下代码完成属性同步:

// 定义两个示例数组,实际使用时替换为你自己的数组变量即可
const arr1 = [ 
  { id: 1, name: 'Test 1', expended: false },
  { id: 2, name: 'Test 2', expended: false },
  { id: 3, name: 'Test 3', expended: false }
];
const arr2 = [ 
  { id: 1, name: 'Test 1', expended: false },
  { id: 2, name: 'Test 2', expended: true },
  { id: 3, name: 'Test 3', expended: false }
];

// 核心同步逻辑
arr2.forEach(source => {
  const matchTarget = arr1.find(target => target.id === source.id);
  if (matchTarget) {
    matchTarget.expended = source.expended;
  }
});

// 测试打印,可以看到arr1的id=2对象expended已经变为true,其他属性无变化
console.log(arr1);
实现说明
  • 全程通过forEach遍历源数组(即第二个数组),符合语法要求
  • 仅对匹配到同id的对象修改expended属性,对象内其余所有属性都会完整保留,不会被覆盖
  • 不会整体替换数组,仅修改数组内目标对象的指定属性值
  • 增加了匹配非空判断,若两个数组id不完全对齐也不会运行报错

内容的提问来源于stack exchange,提问作者yajoj98337

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:54:02