需求:判断数组对象中是否有某个对象,有则替换无则添加
/**
* 判断数组对象中是否有某个对象,有则替换无则添加
* @param {*} initialArr 源数组
* @param {*} obj 判定的对象
* @param {*} pro 对象中的某个属性(通常为id)
*/
export const formateArrObjData = (initialArr, obj, pro) => {
// 判定数据是否为对象或者数组
if (!(initialArr instanceof Array)) {
return '请传入正确格式的数组'
}
// 判定数据是否为对象或者数组
if (!(obj instanceof Object)) {
return '请传入正确格式的对象'
}
// 判定数据是否为对象或者数组
if (!pro) {
return '请传入正确格式的属性名称'
}
let bool = false // 判断对象是否在里面 默认不在(关键标志)
let index = 0
let tempArr = JSON.parse(JSON.stringify(initialArr))
tempArr.forEach((val, key) => {
if (val[pro] === obj[pro]) {
bool = true // 如果有就把状态变成是
index = key
}
})
if (bool) {
// 如果有就替换 没有就添加
tempArr.splice(index, 1, obj)
} else {
tempArr.push(obj)
}
return tempArr
}