如何从数组中删除对象? 我希望从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"}];
当前回答
这是一个对我有用的函数:
function removeFromArray(array, value) {
var idx = array.indexOf(value);
if (idx !== -1) {
array.splice(idx, 1);
}
return array;
}
其他回答
这就是我用的。
Array.prototype.delete = function(pos){
this[pos] = undefined;
var len = this.length - 1;
for(var a = pos;a < this.length - 1;a++){
this[a] = this[a+1];
}
this.pop();
}
那就像说出来一样简单
var myArray = [1,2,3,4,5,6,7,8,9];
myArray.delete(3);
用任何数字代替3。之后的预期输出应该是:
console.log(myArray); //Expected output 1,2,3,5,6,7,8,9
这个概念使用剑道网格
var grid = $("#addNewAllergies").data("kendoGrid");
var selectedItem = SelectedCheckBoxList;
for (var i = 0; i < selectedItem.length; i++) {
if(selectedItem[i].boolKendoValue==true)
{
selectedItem.length= 0;
}
}
在数组上使用splice函数。指定开始元素的位置和要删除的子序列的长度。
someArray.splice(pos, 1);
干净的解决方案是使用Array.filter:
var filtered = someArray.filter(function(el) { return el.Name != "Kristian"; });
问题是它不能在IE < 9上工作。然而,你可以包括来自Javascript库(例如:underscore.js)的代码,为任何浏览器实现这一点。
我建议使用lodash.js或sugar.js来完成以下常见任务:
// lodash.js
someArray = _.reject(someArray, function(el) { return el.Name === "Kristian"; });
// sugar.js
someArray.remove(function(el) { return el.Name === "Kristian"; });
在大多数项目中,拥有一组由此类库提供的helper方法是非常有用的。