首页 > 解决方案 > 从 JavaScript 数组中删除特定索引

问题描述

我写了一些代码,我正在跟踪我已经成功但发现很难从数组中删除它们的索引,所以我对剩下的做同样的事情。

 var v = [4, 7, 2,5, 3] 
 var f = []
 for (let i = 1; i < v.length; i += 2){
/*(point1)this line doesn't seem to work*/
 if (v[i] > v[i] - 1)
/*(point 2) Instead of console.log I want to delete every of v[i] */
console.log(v[i])

输出

7
5

删除 v[I] 时的预期输出

 v = [4,2,3]

最好我想做一些类似 splice v[i] if v[i] > v[i] -1 的事情,然后像拼接元素一样返回 v。

我首先在命令行中用这种类似的逻辑测试了第 1 点,它工作了,但是......;

   if ((b[1] -1) > b[0]){console.log(b[2])}

输出

3
```

标签: javascriptarrayssortingindexingarray-splice

解决方案


要删除数组的特定索引,您可以使用如下拼接。

var fruits = ["apple", "orange", "avocado", "banana"];
//remove one element starting from index 2
var removed = fruits.splice(2, 1);
//fruits is ["apple", "orange", "banana"]
//removed is ["avocado"]

但是,关于 if 逻辑,它将始终为真,因为您正在测试一个数字是否大于自身减去 1。如果您尝试测试当前数组位置中的值是否大于前一个位置中的值,所以你应该这样。

if (v[i] > v[i-1])

推荐阅读