判断数组中是否存在某个对象,如果数组中存在这个对象就删除此对象。
首先向js注入自定义函数:
/*删除数组中指定对象*/ Array.prototype.removeObj = function(val) { var length = this.length; for (var i = 0; i < length; i++) { if( JSON.stringify(this[i]) == JSON.stringify(val) ){ if(i == 0){ this.shift();//删除数组第一个元素 }else if(i == length - 1){ this.pop();//删除数组最后一个元素 }else{ this.splice(i,1);//删除下标为i的元素 } } } return this;//返回删除后的数组 };
目标数组:
var ArrData = [ {id: "1", text: "xxxx数据1"}, {id: "2", text: "xxxx数据2"}, {id: "3", text: "xxxx数据3"}, {id: "4", text: "xxxx数据4"}, {id: "5", text: "xxxx数据5"}, {id: "6", text: "xxxx数据6"}, {id: "7", text: "xxxx数据7"}, {id: "8", text: "xxxx数据8"}, {id: "9", text: "xxxx数据9"}, ];
要删除的对象:
var b = {id: "6", text: "xxxx数据6"};
删除
ArrData.removeObj(b);
如果要在删除之前判断是否存在->免循环判断数组中是否存在某个对象:
//数组和对象全转成string, 然后使用string.indexOf判断是否存在 var tempData = ArrData; var tempCurr = {id: "6", text: "xxxx数据6"}; if( JSON.stringify(tempData).indexOf(JSON.stringify(tempCurr)) == -1 ){ alert('不存在'); }else{ alert('存在'); }
转载请注明本文标题和链接:《 JavaScript删除数组中的某个对象 》
网友评论 0