JavaScript 删除某个数组中指定的对象

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 16:49   416   0

对象数组的操作,比较简单,这里只是记录一下方便使用

返回对象在数组中的下标:

function getIndexWithArr(_arr,_obj) {
 var len = _arr.length;
 for(var i = 0; i < len; i++)
 {
  if(isObjectValueEqual(_arr[i],_obj)) {
   return i;
  }
 }
 return -1;
};

//判断对象是否相等
function isObjectValueEqual(a, b) {
 if(typeof(a) != "object" && typeof(b) != "object"){
  if(a == b){
   return true;
  }else{
   return false;
  }
 }
    var aProps = Object.getOwnPropertyNames(a);
    var bProps = Object.getOwnPropertyNames(b);

    if (aProps.length != bProps.length) {
        return false;
    }

    for (var i = 0; i < aProps.length; i++) {
        var propName = aProps[i];

        if (a[propName] !== b[propName]) {
            return false;
        }
    }

    return true;
}

删除指定对象:

function removeObjWithArr(_arr,_obj) {
 var length = _arr.length;
 for(var i = 0; i < length; i++)
 {
  if(isObjectValueEqual(_arr[i],_obj))
  {
   if(i == 0)
   {
    _arr.shift(); //删除并返回数组的第一个元素
    return;
   }
   else if(i == length-1)
   {
    _arr.pop();  //删除并返回数组的最后一个元素
    return;
   }
   else
   {
    _arr.splice(i,1); //删除下标为i的元素
    return;
   }
  }
 }
};

根据传入的数组arr和需删除的对象obj 即可删除

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP