需求: 对数组arr=[1,2,2,3,4],删除数组中的2
一般写法:会发现删除不干净,还留有一个2
let arr = [1,2,2,3,4]
arr.forEach((item,index)=>{
if(item===2) arr.splice(index,1)
})
console.log(arr) // [1,2,3,4]
解决方法1: 倒序删除,可以把2全部进行删除
let arr = [1,2,2,3,4]
let len = arr.length
for(let i = len; i >= 0; i--){
if(arr[i] === 2) arr.splice(i,1)
}
console.log(arr) // [1,3,4]
解决方法2: 借助while进行删除,可以全部删除
let arr = [1,2,2,3,4]
let len = arr.length
while(len--){
if(arr[len] === 2) arr.splice(len,1)
}
console.log(arr) // [1,3,4]
借鉴博客: jianshu.com/p/3107cf2e3217