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
相关产品推荐
相关产品推荐

