简体   繁体   English

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

[英]I can't remove this specific items from this array

I know it's very simple, but tried searching and could'nt find anything that would solve my problem. 我知道这很简单,但是尝试搜索却找不到能解决我问题的任何东西。

So let's say I have this array: 所以说我有这个数组:

 var chicken = [10, 45, 150, 5000, 25000, 100000, 150000];

and I want to remove everything except 25000. So I tried a simple iteration: 我想删除25000以外的所有内容。因此,我尝试了一个简单的迭代:

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

And it doesn't work. 而且它不起作用。 The output is [ 45, 5000, 25000, 150000 ], don't know why. 输出为[45,5000,25000,150000],不知道为什么。

The reason it doesn't work is because your array length is changing as you splice each item. 它不起作用的原因是因为在splice每个项目时阵列长度正在变化。 If you want to loop and remove, use a reverse loop: 如果要循环和删除,请使用反向循环:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM