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;
});