高级JS

JS 判断数组(数组对象)中是否存在指定的值,如果存在就删除

2021-10-15  本文已影响0人  开飞机的杰瑞

数组中

用到了 for 、indexOf

let str = ['a', 'b', 'c']
let index = str.indexOf('a')
if (index > -1) {
  // 大于 0 代表存在,
  str.splice(index, 1) // 存在就删除
}
console.log(str) // ["b", "c"]

数组对象中

第一种方法

用到了 map 、filter、includes

let arrData = [
  { id: 1, name: 'aa' },
  { id: 2, name: 'bb' },
  { id: 3, name: 'cc' },
  { id: 4, name: 'dd' },
  { id: 5, name: 'ee' }
]
let serviceList = [
  { id: 2, name: 'bb' },
  { id: 3, name: 'cc' },
  { id: 5, name: 'ee' }
]
let serviceIdList = serviceList.map((item) => item.id)
console.log(serviceIdList)
let resultArr = arrData.filter((item) => !serviceIdList.includes(item.id))
console.log(resultArr)
结果

第二种方法

用到了 for 、indexOf、splice

let filterArr = [
   { id: '1', name: 'aa' },
   { id: '2', name: 'bb' },
   { id: '3', name: 'cc' },
   { id: '4', name: 'dd' },
   { id: '5', name: 'ee' }
 ]
 for (let i = 0; i < filterArr.length; i++) {
   if (filterArr[i].id.indexOf('4') > -1) {
     // 判断 id 为 4 的对象是否存在,
     filterArr.splice(i, 1) // 存在即删除
   }
 }
 console.log(filterArr)
结果
上一篇下一篇

猜你喜欢

热点阅读