js根据某个属性或者某个值,删除在数组中包含改属性或者该值的项,保留其它项的场景

164 阅读1分钟

在开发中,我们往往会遇到一个场景,根据某个属性或者某个值,删除在数组中包含改属性或者该值的项,保留其它项的场景,分享几个实用方法

1、知道要删除项的下标值

index为删除项的下标值 arr为源数组

const arrRemoveIndex = function (index, arr) {
    if (!arr || arr.length == 0) {
        return []
    }
    arr.splice(index, 1) return arr
}

2、知道要删除项的值

it 为要删除项的值 arr为源数组

const arrRemove = function (it, arr) {
  if (!arr || arr.length == 0) {
      return []
  }
  let flag = arr.indexOf(it)
  if (flag > -1) {
      arr.splice(flag, 1)
      return arr
  } else {
      console.log("未查找到该元素")
  }
}

3、如果要删除项为对象,我们需要知道该对象属性中的唯一值

attr是目标数组中的属性名称,value是要删除的属性名称对应的值

const arrRemoveJson = function (arr, attr, value) {
  if (!arr || arr.length == 0) {
    return []
  }
  let newArr = arr.filter(function (item, index) {
    return item[attr] != value
  })
  return newArr
}