function remove(e){
self.deletingId = e.target.parentNode.firstElementChild.id;
for(var i = 0; i<Object.keys(DataMixin.data.holidayList).length; i++){
if(self.deletingId == DataMixin.data.holidayList[i+1].reason){
console.log('matched'); //prints on deletion of 5th object and then 3rd object as well
delete DataMixin.data.holidayList[i+1];
e.target.parentNode.remove();
console.log('ID deleted is: ' , DataMixin.data.holidayList[i+1]); // still prints the value
}
}
}
出与键/值对10个的对象,我成功删除第五对象的对象属性,然后删除第三个目标是抛出错误:无法删除在一个循环
错误在这里:reason
在DataMixin.data.holidayList[i+1].reason
你是否意识到,当你删除一个条目数组缩短(因此你可能会尝试访问一个不存在的索引)? – FDavidov
对数组项目的'delete'将该项目设置为'未定义',它不会将其从数组中移除。这就是说,我迷失了你的逻辑,试图删除'i + 1'。 MCVE肯定会有所帮助。也许你应该以相反的顺序迭代 –
@FDavidov我打算使用'onclick'去除函数,它应该在循环内设置'i'值为0? – Satyadev