判断数组中是否存在某个对象,如果数组中存在这个对象就删除此对象。
首先向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