扫码关注官方订阅号
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)
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
先删除下标大的再删除下标小的
把数组换成对象,使用delete方法删除,下标就不会变了
数组的map方法 剔除指定的索引位置的元素 新生成一个数组
或者直接filter方法
可以试一下,新建一个新的数组,然后循环你要做修改的那个数组,如果下标不是你要删的那个数,那就把这个位置上的元素push到你的新的数组里,如果下标是你要删的那个数,直接continue跳出循环
这样循环结束之后,新的数组就是你需要的数组,再把它赋值给旧数组就好了
生成新数组的话:
不生成新数组: