数组重新赋值失败
Posted taokele
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组重新赋值失败相关的知识,希望对你有一定的参考价值。
问题:
rightSelectChange:function (item) { let filterArr=this.selectData.filter(value=>{ return value.id!==item.id }); this.selectData=filterArr; console.log(filterArr); console.log(this.selectData); this.filterData(); },
打印结果是:this.selectData的值还是原来的值 没有改变
问题2:
let item={id:1,name:‘aaa‘}, let selectData=[{id:1,name:‘aaa‘},{id:2,name:‘bbb‘}] let filterArr=selectData.filter(value=>{ return value.id!==item.id; }) selectData=filterArr; console.log(filterArr); console.log(selectData);
打印结果:selectData的值改变了
解析:原来以为跟数据类型的指针有关,但是问题2显示不会,
问题1是再vue中写的,后来换了一种写法
改写后
rightSelectChange:function (item) { this.selectData.forEach((value,index)=>{ if(value[this.props.key]===item[this.props.key]){ this.selectData.splice(index,1); } }); this.filterData(); },
打印结果:this.selectData的值改变了,可能跟vue的框架有关吧
以上是关于数组重新赋值失败的主要内容,如果未能解决你的问题,请参考以下文章