10. 封装移除数组对象的函数组件

108 阅读1分钟

1. 删除数组中某个对应的对象

例如:

let data1 = [
        {id:1, name:"lili"},
        {id:2, name:"xixi"}]
let data2 = 1

// 效果,返回新数组
removeArrMember(data1, data2)
let data3 = [
        {id:2, name:"xixi"}]
    removeArrMember(arr, obj) {
      let newArr = [];
      for (let v of arr) {
        let flag = true;
        if (v.id == obj) {
          flag = false;
        }
        if (flag) {
          newArr.push(v);
        }
      }
      return newArr;
    },

2.删除数组中重复的所有对象

例如:

let data1 = [
        {id:1, name:"lili"},
        {id:3, name:"juju"},
        {id:2, name:"xixi"}
      ]
let data2 = [
        {id:3, name:"juju"},
        {id:2, name:"xixi"}
      ]
    }
// 效果,返回新数组
let data3 = [
        {id:1, name:"lili"}
]
    removeAllMember(_arr, _del) {
      _arr.map((v, index) => {
        _del.forEach((va) => {
          if (va.id === v.id) {
            if (_arr[index].key) {
              return;
            }
            _arr[index].key = 1;
          }
        });
      });
      let arrObj1 = [];
      _arr.map((v) => {
        if (!v.key) {
          arrObj1.push(v);
        }
      });
      return arrObj1;
    },

3. 删除数组中重复的多余对象

例如

let data1 = [
        {id:1, name:"xixi"},
        {id:1, name:"xixi"},
        {id:2, name:"hh"},
        {id:3, name:"lancy"},]
// 效果, 返回新数组
removeMember(data1)
let data1 = [
        {id:1, name:"xixi"},
        {id:2, name:"hh"},
        {id:3, name:"lancy"},]
    removeMember(data) {
      let newArr = [];
      for (let v of data) {
        let flag = true; //建立标记,判断数据是否重复,true为不重复
        for (let k of newArr) {
          //循环新数组的内容
          if (v.id == k.id) {
            console.log("已经删除了的", v);
            //让json数组对象的内容与新数组的内容作比较,相同的话,改变标记为false
            flag = false;
          }
        }
        if (flag) {
          //判断是否重复
          console.log("没有删除的", v);
          newArr.push(v); //不重复的放入新数组。  新数组的内容会继续进行上边的循环。
        }
      }
      return newArr;
    },

4.移除数组中对应的对象

例如:

let data1 = [1,2,3,4,5]
let data2 = 1
// 效果,改变原数组
removeArray(data1, data2)
data1 = [2,3,4,5]
    removeArray(_arr, _obj) {
      let length = _arr.length;
      console.log(_arr);
      for (let i = 0; i < length; i++) {
        if (_arr[i] == _obj) {
          if (i === 0) {
            _arr.shift(); //删除并返回数组的第一个元素
            return _arr;
          } else if (i == length - 1) {
            _arr.pop(); //删除并返回数组的最后一个元素
            return _arr;
          } else {
            _arr.splice(i, 1); //删除下标为i的元素
            return _arr;
          }
        }
      }
    },