我知道这很简单,但是尝试搜索并且找不到任何可以解决我问题的东西。
所以我想说我有这个数组:
var chicken = [10, 45, 150, 5000, 25000, 100000, 150000];
我想删除除25000之外的所有内容。所以我尝试了一个简单的迭代:
for (var w=0; w<chicken.length; w++){
if (chicken[w]<25000 || chicken[w]>25000){
chicken.splice(w,1);
}
}
它不起作用。输出是[45,5000,25000,150000],不知道为什么。
答案 0 :(得分:8)
它不起作用的原因是因为你的数组长度随每个项目的splice
而变化。如果要循环和删除,请使用反向循环:
for (var i = chicken.length - 1; i >= 0; i--) {
if (chicken[i] !== 25000) chicken.splice(i, 1);
}