我正在使用一系列JavaScript对象:
var IssuesArray = [{"ID" : "1","Name" : "Issue1"},{"ID" : "2","Name" : "Issue2"},{"ID" : "3","Name" : "Issue3"}];
当我知道对象的ID时,我的最终努力是尝试从数组中删除一个对象。我试图使用这样的代码:
$.grep(IssuesArray,function(n,i) { return i != $.inArray("2",IssuesArray); });
所以这表明我试图使用jQuery grep通过index(i)删除一个元素,我试图通过使用jQuery inArray来检索。上面的代码当然不会工作,因为“2”应该对应于数组中的一个项目,它们都是JavaScript对象(一个对象永远不会等于“2”)。我需要这样的东西:
$.inArray(javascriptObject.Name=="2",IssuesArray);
有没有人有任何成功使用inArray获取JavaScript对象的索引,使用该对象中的字段值?任何帮助将不胜感激。谢谢。
更新/澄清:有几个人对我的问题感到困惑,但是我收到了一个有用的答案。我在用着:
IssuesArray = $.grep(IssuesArray,function(n) { return n.ID != "2"; });
我觉得我在考虑太深,解决方案真的很简单。我只想从数组中删除一个JavaScript对象,只要我知道该对象中特定属性的值。上述解决方案使用jQuery的grep从数组中返回所有内容,除了ID ==“2”的任何对象。像往常一样,感谢您的快速答案。几个答案是很好的解决方案,并且可以使用(例如使用“拼接”),但这个解决方案似乎是最简单的。再次感谢。
解决方法
n是你的列表项,所以这样做应该做这个工作:
$.grep(issuesArray,function(n) { return n.ID != "2"; })