forEach()
let arr = [1, 1, 2]
arr.forEach((item, index, arr) => {
if (item == 1) {
arr.splice(index, 1)
}
})
console.log(arr) // [1, 2]
居然没有完全删掉??
我又做了实验↓↓
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYTMfhHLlN3XnxCM38FdsYkRGZkRG9lcvx2bjxyMx8VZ6l2cs0DNXpFdWhkYPlGc1I0VyVTQClGVF5UMR9Fd4VGdsATNfd3bkFGazxycykFaKdkYzZUbapXNXlleSdVY2pESa9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxUDOzQmMjZmMwQTNykTO4AjYyQTYiBTZ0MjZ2cDMxAzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
数组[1,1,2]删除不干净,数组[1,2,1]却可以??
又去网上找了下,原因是使用splice容易使数组的index乱序。
所以还是用ES6的filter吧
filter()
let arr = [1, 1, 2]
arr = arr.filter(item => {
return item != 1
})
console.log(arr) // [2]