考虑以下事项:
resultData.forEach(function(data) {
if (data.profile === undefined) {
resultData.splice(data, 1);
}
});
有一个实例,其中一个resultData对象没有配置文件。所以我试图删除它。然而,它实际上并没有被删除,被删除的元素有一个配置文件...
关于我做错的任何想法?
当我console.log(resultData)
时,我会看到对象,特别是没有配置文件的对象。
splice
假设修改数组没有?它返回一个已删除的元素数组。 那么我做错了什么?
我想从未定义配置文件的对象数组中删除任何对象我以为这样做...
答案 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
的记录的新数组。