我有以下代码:
$.each(current, function(index, value) {
thisArray = JSON.parse(value);
if (thisArray.ttl + thisArray.now > now()) {
banned.push(thisArray.foodID);
}
else{
current.splice(index,1);
}
});
以下行有问题:
current.splice(index,1);
发生的事情是它(可能)取消设置第一个符合 else
条件的情况,然后当它必须再次发生时,键不再匹配并且它不能取消任何其他设置。它工作一次,但在接下来的迭代中不起作用。
有解决办法吗?
最佳答案
您可以使用常规的 for
循环,并向后循环:
for(var i=current.length-1; i>= 0; i--) {
var thisArray = JSON.parse(current[i]);
if (thisArray.ttl + thisArray.now > now()) {
banned.push(thisArray.foodID);
} else {
current.splice(i, 1);
}
});
而且看起来 thisArray
实际上是一个对象,而不是一个数组...
关于javascript - 在循环中取消设置 javascript 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18292922/