如何解决Vue使用filter过滤原始数据,并赋值给后端返回的数据改变了原始数据

时间:2025-01-19 08:20:19

一、使用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=(function(item,index,array){
			return(==2);
			 });
			 = true
			 = false
			[index].list= res;
		},

筛选状态为二的数据

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

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

**

使用数组深拷贝方法

**

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

  JSON.parse(str);

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

  JSON.stringify(obj);

不会污染原数据,新深拷贝一个数组,使用((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)
        }
      }
    }
  }


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

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

欢迎关注博主!!!!!