如何从数组中删除对象? 我希望从someArray中删除包含名称Kristian的对象。例如:
someArray = [{name:"Kristian", lines:"2,5,10"},
{name:"John", lines:"1,19,26,96"}];
我想实现:
someArray = [{name:"John", lines:"1,19,26,96"}];
如何从数组中删除对象? 我希望从someArray中删除包含名称Kristian的对象。例如:
someArray = [{name:"Kristian", lines:"2,5,10"},
{name:"John", lines:"1,19,26,96"}];
我想实现:
someArray = [{name:"John", lines:"1,19,26,96"}];
当前回答
你所显示的“数组”是无效的JavaScript语法。花括号{}表示具有属性名/值对的对象,而方括号[]表示数组,就像这样:
someArray = [{name:"Kristian", lines:"2,5,10"}, {name:"John", lines:"1,19,26,96"}];
在这种情况下,您可以使用.splice()方法删除一个项。要删除第一项(索引0),如下所示:
someArray.splice(0,1);
// someArray = [{name:"John", lines:"1,19,26,96"}];
如果你不知道索引,但想通过数组搜索找到名称为“Kristian”的项来删除,你可以这样做:
for (var i =0; i < someArray.length; i++)
if (someArray[i].name === "Kristian") {
someArray.splice(i,1);
break;
}
编辑:我刚刚注意到你的问题被标记为“jQuery”,所以你可以尝试$.grep()方法:
someArray = $.grep(someArray,
function(o,i) { return o.name === "Kristian"; },
true);
其他回答
你所显示的“数组”是无效的JavaScript语法。花括号{}表示具有属性名/值对的对象,而方括号[]表示数组,就像这样:
someArray = [{name:"Kristian", lines:"2,5,10"}, {name:"John", lines:"1,19,26,96"}];
在这种情况下,您可以使用.splice()方法删除一个项。要删除第一项(索引0),如下所示:
someArray.splice(0,1);
// someArray = [{name:"John", lines:"1,19,26,96"}];
如果你不知道索引,但想通过数组搜索找到名称为“Kristian”的项来删除,你可以这样做:
for (var i =0; i < someArray.length; i++)
if (someArray[i].name === "Kristian") {
someArray.splice(i,1);
break;
}
编辑:我刚刚注意到你的问题被标记为“jQuery”,所以你可以尝试$.grep()方法:
someArray = $.grep(someArray,
function(o,i) { return o.name === "Kristian"; },
true);
最简单的解决方案是创建一个映射,按名称存储每个对象的索引,如下所示:
//adding to array
var newPerson = {name:"Kristian", lines:"2,5,10"}
someMap[ newPerson.name ] = someArray.length;
someArray.push( newPerson );
//deleting from the array
var index = someMap[ 'Kristian' ];
someArray.splice( index, 1 );
这个怎么样?
$.each(someArray, function(i){
if(someArray[i].name === 'Kristian') {
someArray.splice(i,1);
return false;
}
});
在你的数组语法中似乎有一个错误,所以假设你的意思是一个数组,而不是一个对象,数组。Splice是你的朋友:
someArray = [{name:"Kristian", lines:"2,5,10"}, {name:"John", lines:"1,19,26,96"}];
someArray.splice(1,1)
使用javascript的splice()函数。
这可能会有帮助:http://www.w3schools.com/jsref/jsref_splice.asp