jquery javascript从JSON对象中删除对象数据
我有一个JSON对象,看起来像下面的对象,这个对象可以持续几天。因此,我想知道我是否可以删除完整的集合。在下面的示例中,集合相当于位置[0]或位置[1]。我必须首先迭代对象,并尝试找出哪个是哪个。假设我要删除zipcode为06238的集合,我需要遍历整个locations对象,找出它在对象中的集合,然后相应地删除它。问题是,我不确定如何处理这个概念jquery javascript从JSON对象中删除对象数据,javascript,jquery,json,object,Javascript,Jquery,Json,Object,我有一个JSON对象,看起来像下面的对象,这个对象可以持续几天。因此,我想知道我是否可以删除完整的集合。在下面的示例中,集合相当于位置[0]或位置[1]。我必须首先迭代对象,并尝试找出哪个是哪个。假设我要删除zipcode为06238的集合,我需要遍历整个locations对象,找出它在对象中的集合,然后相应地删除它。问题是,我不确定如何处理这个概念 { "locations": [ { "city": "San Jose",
{
"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];
}
});
差不多吧。你是在寻找一个想法还是一个完整的功能
下面是您可以编写的removeFirst函数,如下所示:
function removeFirst(arr, func)
{
for (var i=0; i<arr.length; i++)
{
if (func.call(arr[i]))
{
arr.splice(i,1);
return arr;
}
}
}
function removeMany(arr, func)
{
for (var i=arr.length; i>0; --i)
{
if (func.call(arr[i]))
{
arr.splice(i,1);
}
}
return arr;
}
如果要删除多个元素,可以这样编写:
function removeFirst(arr, func)
{
for (var i=0; i<arr.length; i++)
{
if (func.call(arr[i]))
{
arr.splice(i,1);
return arr;
}
}
}
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";});
下划线非常适合做数组操作。我是It工作者
arrList = $.grep(arrList, function (e) {
if(e.add_task == addTask && e.worker_id == worker_id) {
return false;
} else {
return true;
}
});
它返回一个没有该对象的数组
希望能有所帮助。我在迭代数组时会小心地从数组中删除元素,尤其是使用
jQuery之类的方法时。在开始之前缓存.length
的每个()
,一个完整的解决方案总是很好的,永远不会拒绝其中一个:-d然而,作为一个立足点的东西总是能起作用的。我认为这对我很有效。我很快就会对此进行测试,谢谢如果找到匹配项,我可能会在循环后删除它,捕获它在上述概念中作为变量传递给delete之类的对象集(如果找到)。这对我来说是一个很好的立足点,这就是我所能要求的。删除的项目在Removemany()中的循环的数组中变得未定义(var I=arr.length;I>0;--I)。