我是迭代陣列並基於條件I 想要根據索引(目前我使用)刪除該陣列中的特定元素。以下是我的代碼正在按預期完美工作。無法使用拼接刪除陣列中的元素
var todayWeekNo = new Date().getWeek();
$.each(arr, function (i, j) {
var isEqual = todayWeekNo == new Date(j.Date).getWeek();
if (isEqual) {
delete arr[i];
}
});
你可以看到這個working fiddle
在尋找一個更好的辦法,我才知道,
Delete won't remove the element from the array it will only set the element as undefined.
所以我代替delete arr[i];
與arr.splice(i, 1);
對於第2次迭代,它工作正常,而它在最後一次迭代時卡住了。
下面是控制檯消息(jsfiddle):
index0 arr: [object Object] (index):43
index1 arr: [object Object] (index):43
index2 arr: undefined (index):43
Uncaught TypeError: Cannot read property 'Date' of undefined
請闡明這個問題的一些情況。