javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > js根据属性删除数组中对象

js根据属性删除对象数组里的相应对象

作者:方小川

这篇文章主要介绍了js根据属性删除对象数组里的相应对象,需要的朋友可以参考下

比如一个卡列表,要在这个列表中删除其中一项,删除后不重新调获取接口,而是直接前端更新页面,比如用vue只要改变开始卡列表的model就会自动渲染页面。

这个卡列表的model自然是一个对象数组[{cardid:001,cardno:"432434234"},{cardid:002,cardno:"546436"},...],cardid是唯一的,每一项都不一样,删除的时候就根据这个属性来删除。

下面就是根据属性从对象数组里删除对应对象的方法:(一次只能删一个)

removeByValue: function(arr, attr, value) {  //数组,属性,属性值
                var index=0;
                for(var i in arr){
                    if(arr[i][attr]==value){
                        index=i;
                        break;
                    }
                }
                arr.splice(index,1);
             }

使用这个方法的时候,只要在调用删除接口的success回调里这样写

Util.removeByValue(that.cards,"cardid",cardId); //卡列表数组,属性,被删卡的属性值

根据对象数组中某一属性的值删除包含这一属性值的对象

// 原数组
var cars = [
  {type:"BMW", year:2017},
  {type:"Audi", year:2019},
  {type:"porsche", year:2018}
];
// 方法
function removeByValue(arr, attr, value)
 { 
  var index=0;
  for(var i in arr){
    if(arr[i][attr]==value){
      index=i;
      break;
    }
  }
  arr.splice(index,1);
}
removeByValue(cars,"type","BMW");
console.log(cars);

箴言:因为这些东西是非常简单的。不要抱怨自己学不会,那是因为你没有足够用心。

阅读全文