如何正确使用 forEach 或拼接

How do I use forEach or splice properly

考虑以下几点:

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

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

对我做错了什么有什么想法吗?

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

splice 是想就地修改数组吗?它将returns 数组中的元素移除。 那我做错了什么?

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

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

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

通过这种方式,您将创建一个新数组,其中没有包含 data.profile === undefined.

的记录

使用Array.prototype.filter直接筛选出结果。这样,您就不会因为缺少索引而出现任何不一致,并且您的数组中不会有填充 undefined 的插槽。

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