一、使用filter进行数据过滤

	//已上按钮
hadclass(index){
  let res=this.changeList.filter(function(item,index,array){
  	return(item.status==1);
  });
	this.leftbtn = true
	this.showbtn = false
	this.result[index].list= res;
},

点击已选按钮,筛选过滤状态为1的数据

//未上按钮
		noclass(index){
			let res=this.changeList.filter(function(item,index,array){
			  return(item.status==2);
			 });
			this.showbtn = true
			this.leftbtn = false
			this.result[index].list= res;
		},

筛选状态为二的数据

this.result[index].list= res;使用后端返回的数据赋值会改变原始数据
那么,我们该如何解决这个问题呢??

接下来就是解决的方法!!!!!!

**

使用数组深拷贝方法

**

  • 这里为介绍 数组深拷贝的文字描述。
  • JSON.parse() 是将字符串中的对象解析出来。
  var str = "{'name':'huahua','age':'22'}";

    JSON.parse(str);

   var obj = {name:"hua",age: 26};

    JSON.stringify(obj);

不会污染原数据,新深拷贝一个数组,使用JSON.parse(JSON.stringify(obj))不会改变原有数据


let son_one = JSON.parse(JSON.stringify(this.father))
let son_two = JSON.parse(JSON.stringify(this.father))
for (let i = 0; i < son_two .length; i++) {
    if (list[i].children) {
      let _list = son_two [i].children
      for (let j = 0; j < _list.length; j++) {
        if (_list[j].children) {
          delete(_list[j].children)
        }
      }
    }
  }


使用JSON.parse(JSON.stringify(obj)会返回原来的数组数据,而不是过滤后的数据

本篇文章精彩到此!!共同一起前端开发,加油!!

欢迎关注博主!!!!!

Logo

前往低代码交流专区

更多推荐