如何替换数组中的指定对象

2025-09-28 01:50:22

1、arr1.map(obj => arr2.find(o => o.id === obj.id) || obj);

2、var arr1 = [{    id: '124',

 

    name: 'qqq'

 

}, {

 

    id: '589',

 

    name: 'www'

 

}, {

 

    id: '45',

 

    name: 'eee'

 

}, {

 

    id: '567',

 

    name: '攀三怕rrr'

 

}];

 

var arr2 = [{

 

    id: '124',

 

    name: 'ttt'

 

}, {

 

    id: '45',

 

    name: 'yyy'

 

}];

 

var res = arr1.map(obj => arr2.find(o => o.id === obj.id) || obj);

 

console.log(res);

3、我将问题分解为两个函数以提高可读性:

// The following function is used for each itertion in the function updateObjectsInArr

 

const newObjInInitialArr = function(initialArr, newObject) {

 

  let id = newObject.id;

 

  let newArr = [];

 

  for (let i = 0; i < initialArr.length; i++) {

 

 慎帽   if (id === initialArr[i].id) {

 

      newArr.push(newObject);

 

    } else {

 

      newArr.push(initialArr[i]);

 

    }

 

  }

 

  return newArr;

 

};

 

const updateObjectsInArr = function(initialArr, newArr) {

 

    let finalUpdatedArr = initialArr; 

 

    for (let i = 0; i < newArr.length; i++) {

 

      finalUpdatedArr = newObjInInitialArr(finalUpdatedArr, newArr[i]);

 

    }

 

    return finalUpdatedArr

 

}

 鉴关

const revisedArr = updateObjectsInArr(arr1, arr2);

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢