如何通过值从数组中删除项目但保留原始索引顺序?

时间:2017-10-04 14:11:39

标签: javascript arrays indexing

如何通过数值从数组中删除项目,但仍保留索引顺序而不是重新索引项目的数组? 为了更清楚,下面的代码将按值删除项目,但它将重新索引值,这意味着在我们拼接5之后,15将具有0而不是1的索引。

var arr = [5, 15, 110, 210, 550];
var index = arr.indexOf(5);

if (index > -1) {
   arr.splice(index, 1);
}

1 个答案:

答案 0 :(得分:5)

如果要保留索引而不是切片,请将索引值设置为undefined ...

var arr = [5, 15, 110, 210, 550];
var index = arr.indexOf(5);

if (index > -1) {
   arr[index] = undefined;
}
console.log(arr);

arr.forEach(function(item){
  if(item !== undefined){
    console.log(item);
  }
});

你总是可以迭代,条件过滤未定义的值..