84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
splice去除会一直更换数组,更换下标,所以我之前记住的下标没用。
先删除下标大的再删除下标小的
把数组换成对象,使用delete方法删除,下标就不会变了
数组的map方法 剔除指定的索引位置的元素 新生成一个数组
或者直接filter方法
可以试一下,新建一个新的数组,然后循环你要做修改的那个数组,如果下标不是你要删的那个数,那就把这个位置上的元素push到你的新的数组里,如果下标是你要删的那个数,直接continue跳出循环这样循环结束之后,新的数组就是你需要的数组,再把它赋值给旧数组就好了
生成新数组的话:
arr = [1,2,3,4,5,6,7] removes = [1,3,5] arr = arr.filter(function(value, index) { return removes.indexOf(index) < 0 });
不生成新数组:
arr = [1,2,3,4,5,6,7] removes = [1,3,5] Array.prototype.remove = function(removes){ removes.sort(function(a, b) { return a - b; }).reverse().forEach(function(value){this.splice(value, 1) }.bind(this) )}; arr.remove(removes)
先删除下标大的再删除下标小的
把数组换成对象,使用delete方法删除,下标就不会变了
数组的map方法 剔除指定的索引位置的元素 新生成一个数组
或者直接filter方法
可以试一下,新建一个新的数组,然后循环你要做修改的那个数组,如果下标不是你要删的那个数,那就把这个位置上的元素push到你的新的数组里,如果下标是你要删的那个数,直接continue跳出循环
这样循环结束之后,新的数组就是你需要的数组,再把它赋值给旧数组就好了
生成新数组的话:
不生成新数组: