jquery javascript从JSON对象中删除对象数据

我有一个看起来像下面的对象的JSON对象,这个对象可以持续数天。 所以我想知道无论如何我可以删除全套,相当于下面例子中的位置[0]或位置[1]。 我必须首先遍历Object并试图弄清楚哪一个是哪个。 所以我想说我要删除一个邮政编码为06238的集合,我需要遍历整个位置对象,找出它在对象中的哪个集合,然后相应地删除它。 问题是我不确定如何接近这个概念。

{ "locations": [ { "city": "San Jose", "state": "CA", "zipcode": "95125", "longitude": "0", "latitude": "0" }, { "city": "Coventry", "state": "CT", "zipcode": "06238", "longitude": "0", "latitude": "0" } ] } 

只需通过索引即可

 delete locations[0]; 

你经历了这样的普通JSON迭代

 jQuery.each(locations, function(i, val) { if(val.zipcode == "yourvalue") // delete index { delete locations[i]; } }); 

类似的东西。 你在寻找一个想法或一个完整的function吗?

这是jsFiddle

您可以像这样编写一个removeFirst函数:

 function removeFirst(arr, func) { for (var i=0; i 

然后调用它:

 removeFirst(locations, function(){return this.zipcode=="06238";}); 

如果你想删除多个元素,你可以像这样写:

 function removeMany(arr, func) { for (var i=arr.length; i>0; --i) { if (func.call(arr[i])) { arr.splice(i,1); } } return arr; } 

并以同样的方式使用它。

或者,以类似的方式使用下划线(http://documentcloud.github.com/underscore)拒绝方法:

 _.reject(locations, function(location){ return location.zipcode=="06238";}); 

Underscore非常适合进行数组操作。

它适合我。

  arrList = $.grep(arrList, function (e) { if(e.add_task == addTask && e.worker_id == worker_id) { return false; } else { return true; } }); 

它返回一个没有该对象的数组。

希望能帮助到你。