乐趣区

关于segmentfault:使用数组的filter方法删除数组中某一项或某几项不用splice方法

问题形容

咱们在日常做我的项目的过程中,须要对数据进行各种加工解决。比拟常见的就是把数组中一些用不到的项,删除掉。对于数组删除,咱们第一工夫想到的就是应用 splice 办法,不过 splice 办法会改变原数组。有的时候,用 fliter 过滤办法也能够删除数组,或者有意想不到的成果。

上代码

// 平时咱们删除数组中的值,罕用的是 splice 办法,不过有时候 filter 办法,兴许会带来妙用
// 间接删除数组中的某些值
let arr1 = ["刘备","关羽","张飞","赵云"]
// 过滤掉 "赵云" 和 "刘备" 这两项,即删除 "赵云" 和 "刘备" 这两项
let newArr1 = arr1.filter((item)=>{return item != "赵云" & item != "刘备"})
console.log(newArr1); // ["关羽", "张飞"]
//  删除数组中的某个索引对应的值
let arr2 = ["孙悟空", "猪八戒", "沙和尚", "唐僧", "白龙马"]
// 过滤掉索引为 2 的那一项,即删除索引为 2 的那一项
let newArr2 = arr2.filter((item,index) => {return index != 2})
console.log(newArr2); // ["孙悟空", "猪八戒", "唐僧", "白龙马"]

总结

所谓数组的过滤办法,其实就是把不要的项给过滤掉,换句话说,就是删除对应的项,只不过 filter 办法,会返回一个新数组而已。如果想要批改原来的数组,只须要把新返回的数组赋值给原来的数组,就能够达到相似 splice 办法的成果~~~~。

退出移动版