前段时间发现,将 array a 赋值给 array b之后,改变 array b后,array a也会跟着变化,一开始有些不解,后来才知道这是数组为引用类型造成的。
原理:当我们将 数组a赋值给数组b的过程中,其实是将数组a的引用地址指向b,这个时候,数组a和数组b都指向同一个引用地址,本质上a和b是同一个东西。
解决方式:为了让数组a赋值给数组b后,改变b不会影响a,可用以下方式来将a中的值给b:
var b=[].concat(a);
如果数组里是对象,用这种方式解决不了,可试试遍历a中的每一项并push到b中