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; } });
它返回一个没有该对象的数组。
希望能帮助到你。