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

jquery javascript从JSON对象中删除对象数据,javascript,jquery,json,object,Javascript,Jquery,Json,Object,我有一个JSON对象,看起来像下面的对象,这个对象可以持续几天。因此,我想知道我是否可以删除完整的集合。在下面的示例中,集合相当于位置[0]或位置[1]。我必须首先迭代对象,并尝试找出哪个是哪个。假设我要删除zipcode为06238的集合,我需要遍历整个locations对象,找出它在对象中的集合,然后相应地删除它。问题是,我不确定如何处理这个概念 { "locations": [ { "city": "San Jose",

我有一个JSON对象,看起来像下面的对象,这个对象可以持续几天。因此,我想知道我是否可以删除完整的集合。在下面的示例中,集合相当于位置[0]或位置[1]。我必须首先迭代对象,并尝试找出哪个是哪个。假设我要删除zipcode为06238的集合,我需要遍历整个locations对象,找出它在对象中的集合,然后相应地删除它。问题是,我不确定如何处理这个概念

{
"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)。