使用js,判斷數組對象中是否有某個對象,有則替換無則添加

需求:判斷數組對象中是否有某個對象,有則替換無則添加

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

 

發佈了22 篇原創文章 · 獲贊 11 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章