javascript - 从 json 数组中迭代和删除

标签 javascript jquery json

我有一个对象,我想从中删除元素。

例如:我的对象如下所示

var DecisionObj = '{"Decision":[{"recid":"1183","reason":"Approved but with different Funding Amount","decision":"Approved","approvalamt":"","comment":""},{"recid":"662","reason":"Approved but with different Funding Amount","decision":"Approved","approvalamt":"","comment":""},{"recid":"752","reason":"Approved but with different Funding Amount","decision":"Approved","approvalamt":"","comment":""}]}';

假设我想删除 recid = 662 的行

下面是我尝试过的代码

var DecisionObj = '{"Decision":[{"recid":"1183","reason":"Approved but with different Funding Amount","decision":"Approved","approvalamt":"","comment":""},{"recid":"662","reason":"Approved but with different Funding Amount","decision":"Approved","approvalamt":"","comment":""},{"recid":"752","reason":"Approved but with different Funding Amount","decision":"Approved","approvalamt":"","comment":""}]}';
obj = JSON.parse(DecisionObj);
console.log("BEFORE==="+JSON.stringify(obj));
var ddcnt = obj.Decision.length;
var recval = 662;
for (e = 0; e < ddcnt; e++) 
{
     //var DRecVal = obj.Decision[e].recid;
     var DRecVal = obj.Decision[e].recid;
     if(recval == DRecVal)
     { 
       obj.Decision.splice(e,1);
     }
}
console.log("AFTER==="+JSON.stringify(obj));

但是上面的代码给了我一个类似 TypeError 的错误: obj.Decision[e] 在第 21 行未定义。

我该如何解决这个问题。感谢帮助!谢谢!

最佳答案

只需添加一个

break;

在循环中调用 splice() 之后。

关于javascript - 从 json 数组中迭代和删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29654122/

相关文章:

javascript - 单元测试 Controller 使用 Jest、NodeJS

javascript - 如何用JavaScript获取远程页面的内容?

JQuery遍历表

json - Haskell Text.Json包可以读但不能写Rationals?

php - 将 PHP 生成的 JSON 保存到文本文件

javascript - jQuery 移动 slider handle - 停止拖动但允许轨道选择

javascript - 在深度嵌套的对象数组中搜索单个键

javascript - 如何捕获复选框输入

jQuery Safari/Chrome 与可拖动包含属性不兼容

php - 从 PHP 执行 javascript 函数并返回响应