Javascript 如何正确使用forEach或splice

Javascript 如何正确使用forEach或splice,javascript,arrays,splice,Javascript,Arrays,Splice,考虑以下几点: resultData.forEach(function(data) { if (data.profile === undefined) { resultData.splice(data, 1); } }); 存在一个实例,其中一个resultData对象没有配置文件。所以我试着移除它。但是它实际上并没有被删除,被删除的元素有一个配置文件 你知道我做错了什么吗 当我console.log(resultData)看到对象时,特别是那些没有配置文件

考虑以下几点:

  resultData.forEach(function(data) {
    if (data.profile === undefined) {
      resultData.splice(data, 1);
    }
  });
存在一个实例,其中一个resultData对象没有配置文件。所以我试着移除它。但是它实际上并没有被删除,被删除的元素有一个配置文件

你知道我做错了什么吗

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

splice
是否要修改阵列?它返回一个已删除元素的数组那么我做错了什么?

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

您最好使用以下方法:

通过这种方式,您将创建新的数组,而不包含包含
数据的记录。profile===未定义的

用于直接过滤结果。这样,您就不会因为缺少索引而出现任何不一致,也不会在数组中有
未定义的
插槽

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

更改为迭代的对象总是一个坏主意。尝试保存要删除的元素的索引并稍后执行,或者将具有概要文件的元素推送到新列表/objectuhh,我认为
.filter()
更合适。
resultData = resultData.filter(function(data) {
    return data.profile !== undefined;
});