我怎样才能“重置”一个数组的键?

这个问题在这里已经有了答案:

  • 在Javascript中删除数组中的空元素36个答案

  • 例如,你可以使用Array.prototype.filter方法。

    var array = [];
    array[30] = 1;
    array.length; // 31
    
    var compactArray = array.filter(function (item) {
        return item !== undefined;
    });
    
    compactArray.length; // 1
    

    如果它是一个对象, for..in循环将是有用的

    var array = { 31: 1};
    var compactArray = [];
    for (var i in array) {
        compactArray.push(array[i]);
    }
    

    你可以循环抛出数组,如果它是一个有效的项目,然后推入另一个数组。

    另外,当你做这样的事情时,

    var arr = [];
    arr[3] = 15;
    

    arr实际上是[null, null, null, 15]

    以下是一个例子。

    (function() {
      var arr = [];
      var result = [];
    
      arr[3] = 15;
      arr[7] = 20;
      arr[19] = -1;
    
      console.log(arr);
      console.log(JSON.stringify(arr))
    
      arr.forEach(function(item) {
        if (item) {
          result.push(item);
        }
      })
    
      console.log(result);
      console.log(JSON.stringify(result));
    })()

    如果你的意思是你的对象是这样的

    var obj = {3: 15, 7: 20, 19: -1};
    var output = {};
    var counter = 0;
    for ( var id in obj )
    {
       output[ String( counter ) ] = obj[ id ];
       counter++;
    }
    console.log( output );
    
    链接地址: http://www.djcxy.com/p/37739.html

    上一篇: How can I "reset" an array's keys?

    下一篇: how to remove null values from an array using jquery