需求:判斷數組對象中是否有某個對象,有則替換無則添加
/**
* 判斷數組對象中是否有某個對象,有則替換無則添加
* @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
}