我有一个对象,我想从中删除元素。
例如:我的对象如下所示
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/