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

时间:2015-06-17 00:06:25

标签: javascript arrays

我正在使用此代码迭代一个数组并删除该元素,如果它不包含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的解决方案,如:[/ p>

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

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

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

1 个答案:

答案 0 :(得分:2)

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