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