我是迭代阵列并基于条件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
请阐明这个问题的一些情况。