使用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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章