如何正确使用forEach或splice

时间:2015-11-13 19:36:45

标签: javascript arrays splice

考虑以下事项:

  resultData.forEach(function(data) {
    if (data.profile === undefined) {
      resultData.splice(data, 1);
    }
  });

有一个实例,其中一个resultData对象没有配置文件。所以我试图删除它。然而,它实际上并没有被删除,被删除的元素有一个配置文件...

关于我做错的任何想法?

当我console.log(resultData)时,我会看到对象,特别是没有配置文件的对象。

splice假设修改数组没有?它返回一个已删除的元素数组。 那么我做错了什么?

我想从未定义配置文件的对象数组中删除任何对象我以为这样做...

2 个答案:

答案 0 :(得分:3)

使用Array.prototype.filter直接过滤掉结果。这样,由于缺少索引而不会出现任何不一致,并且您的数组中没有填充undefined的插槽。

resultData = resultData.filter(function(data) {
    return data.profile !== undefined;
});

答案 1 :(得分:0)

您最好使用Array.prototype.map方法:

var resultData = resultData.map(function(data) {
    if (data.profile === undefined) {
      return;
    }
    return data;
});

这样您就可以创建没有data.profile === undefined的记录的新数组。

相关问题