您的位置:时间博客>前端>JavaScript删除数组中的某个对象

JavaScript删除数组中的某个对象

判断数组中是否存在某个对象,如果数组中存在这个对象就删除此对象。

首先向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

未登陆 表情
Ctrl+Enter快速提交