javascript - 在循环中取消设置 javascript 数组?

标签 javascript jquery

我有以下代码:

  $.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/

相关文章:

javascript - 无法将 Web 服务器的 JSON 结果写入 html

javascript - 使用 Mongoose 将 GridFS-Stream 文件与架构关联

jquery - 在哪里可以找到用于创建组织结构图的 jQuery 或 Ext 插件?

javascript - 如何在 jquery 中推送这样的对象?

javascript - Flask 中的 render_template on JS 点击事件

javascript - 如何将 jQuery DataTable 单元格的默认内容设置为可单击按钮?

javascript - 为什么我的全局变量在函数中不可访问?

javascript - 从服务器自动生成 javascript 代码是个坏主意吗?

javascript - Javascript 中的 CFML

jquery - 点 "modal"功能不适用于所选元素/Ember/Bootstrap