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)
结果