比如我有一个数组,我想把数组中所有开头带13的删除,为什么数组只会删除偶数呢?而且只会删除5个。
var arr = ["1302","1303","1304","1305","1306","1307","1308","1309","1310","1311"]
arr.map(function(val,index,arr){
if (arr[index].substring(0,2) == sub) {
arr.splice(index,1);
}
})
console.log(arr[index],val,index);
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你不能在
map的时候修改arr用filter呗
你原来的代码,在遍历数组的时候删数组元素,就有可能出现,索引紊乱,比如你刚遍历了第一个,就把它删掉了,等遍历第二个的时候,索引是1,但这个时候原来的1对应的元素已经对应到0去了,那就出现漏网之鱼
同写了一个 filter 的
var arr = ["1302","1303","1304","1305","1306","1307","1308","1309","1310","1311"]
var sub = "13"
var myFilter = function(_str) {
}
console.log(arr.filter(myFilter));