Javascript ES6/ES5 find in array and change

前端 未结 8 1331
后悔当初
后悔当初 2020-12-12 10:52

I have an array of objects. I want to find by some field, and then to change it:

var item = {...}
var items = [{id:2}, {id:2}, {id:2}];

var foundItem = item         


        
8条回答
  •  不知归路
    2020-12-12 11:20

    You can use findIndex to find the index in the array of the object and replace it as required:

    var item = {...}
    var items = [{id:2}, {id:2}, {id:2}];
    
    var foundIndex = items.findIndex(x => x.id == item.id);
    items[foundIndex] = item;
    

    This assumes unique IDs. If your IDs are duplicated (as in your example), it's probably better if you use forEach:

    items.forEach((element, index) => {
        if(element.id === item.id) {
            items[index] = item;
        }
    });
    

提交回复
热议问题