如何从Javascript数组中完全删除元素

如何从Javascript数组中完全删除元素,javascript,arrays,Javascript,Arrays,我使用这段代码来迭代数组,并删除不包含itemsToPost的元素 rssFeeds.forEach(function(feed, index, array){ if(feed.itemsToPost.length == 0){ delete rssFeeds[index] } }); 但是,假设删除了所有元素,我从中收到的数组如下所示: [ , ] 当我用Lodash的方法测试数组是否为空时 console.log(_.isEmpty(array)))

我使用这段代码来迭代数组,并删除不包含itemsToPost的元素

  rssFeeds.forEach(function(feed, index, array){
    if(feed.itemsToPost.length == 0){
      delete rssFeeds[index]
    }
  });
但是,假设删除了所有元素,我从中收到的数组如下所示:

[ ,  ]
当我用Lodash的方法测试数组是否为空时

console.log(_.isEmpty(array))) // returns 'false'
如何完全删除这些元素,使数组真正为空

更新:

我发现了一个使用Array.prototype.filter的解决方案,如:

  function hasNewItems(array) {
    return array.itemsToPost.length > 0;
  }

  var newArray = rssFeeds.filter(hasNewItems)
  console.log(newArray); // returns []

它不一定要删除数组,但它具有所需的效果。

delete
不是从数组中删除元素的正确方法,您应该使用
rssFeeds.splice(index,1)

看看
array.prototype.filter
这通常是正确的,但会导致循环中的失败,如问题中所述。