js 数组处理问题

js 数组处理问题

往一个数组中push对象,对象的唯一标识为name,当push到某个对象时,发现数组中存在 name相等的对象,此时如何更新数组中name相同的对象为当前要push的对象


回答:

const objArray = [{name: 1, other: 2}, {name: 2, other: 2}];

const addObj = {name: 2, other: 4}

const index = objArray.findIndex(i => i.name === addObj.name);

if(index > -1) {

objArray[index] = addObj;

// 在 vue 中可能需要写成

this.$set(objArray, index, addObj);

} else {

objArray.push(addObj);

}

以上就是最中规中矩的写法吧。


回答:

function youpush(list, data){

let index = list.findIndex(item => item.name == data.name)

if(index > -1){

list.splice(index, 1, data)

}else{

list.push(data)

}

}

var list = [{name: 1, value: 1}, {name: 2, value: 2}, {name: 3, value: 3}]

youpush(list, {name: 5, value: 5})

youpush(list, {name: 2, value: 22})


回答:

遍历数组,以name的值为key,对象为value,创建一个对象类型的数据obj,key已经有了就更新,没有就添加。
遍历完数组,重新赋值为obj的values。

以上是 js 数组处理问题 的全部内容, 来源链接: utcz.com/p/936705.html

回到顶部