0

オブジェクトのリストからオブジェクトを削除しているときに、未定義のエラーが発生します。

HTML:

<div>
<p each="{holidayListSecondPart, i in this.holidayListSecondPart}">
    <span id="{holidayListSecondPart.description}">{holidayListSecondPart.description}</span>

    <span id="delete{i+1}" onclick="{remove}">delete</span>

    <span id="editHoliday{i+1}" onclick="{editHoliday}">edit</span>
</p>
</div>

js コード:

remove(e){
    e.target.parentNode.remove();
    console.log('DataMixin.data before delete ', DataMixin.data.holidayList);
    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("delete ID matched: ", i+1);
            console.log('ID to be deleted is: ' , DataMixin.data.holidayList[i+1]);
            delete DataMixin.data.holidayList[i+1];
        }
    }
    console.log('DataMixin.data after delete ', DataMixin.data.holidayList);
}

オブジェクトのリストは次のようになります。

オブジェクトのリスト

最初のオブジェクトを削除した後、3 番目のオブジェクトのスロー エラーを削除しようとしました。

Uncaught TypeError: Cannot read property 'reason' of undefined

ロジックのループに何か問題があると確信していますが、頭を悩ませることができません。どこで私は間違えましたか?

アップデート:

以下のようにクリックすると、DOM から要素を削除し、Javascript オブジェクトからそのプロパティを削除しようとしています。

ここに画像の説明を入力

4

1 に答える 1