我无法从此数组中删除此特定项目

Hia*_*rpa 1 javascript arrays items

我知道这很简单,但是尝试搜索并且找不到可以解决我问题的任何东西.

所以我想说我有这个数组:

 var chicken = [10, 45, 150, 5000, 25000, 100000, 150000];
Run Code Online (Sandbox Code Playgroud)

我想删除除25000之外的所有内容.所以我尝试了一个简单的迭代:

 for (var w=0; w<chicken.length; w++){
     if (chicken[w]<25000 || chicken[w]>25000){
    chicken.splice(w,1);
     }
 }
Run Code Online (Sandbox Code Playgroud)

它不起作用.输出是[45,5000,25000,150000],不知道为什么.

tym*_*eJV 8

它不起作用的原因是因为您的splice每个项目的数组长度都在变化.如果要循环和删除,请使用反向循环:

for (var i = chicken.length - 1; i >= 0; i--) {
    if (chicken[i] !== 25000) chicken.splice(i, 1);
}
Run Code Online (Sandbox Code Playgroud)