解决数组赋值指向同一地址

1、使用slice()

可使用slice()进行复制,因为slice()返回也是数组。
var array1 = new Array(“1”,“2”,“3”);
var array2;
array2 = array1.slice(0);
array1.length = 0;
alert(array2); //返回1、2、3

slice(param1,param2)
param1,截取得起始位置,0,从第一位开始,-1,从最后一位开始,-2从倒数第二位 开始
param2 可选,截取得终止位置,如果没有,就是到最后一位

2、使用cantact:
注意concat()返回的并不是调用函数的Array,而是一个新的Array,所以可以利用这一点进行复制。
var array1 = new Array(“1”,“2”,“3”);
var array2;
array2 = array1.concat();
array1.length = 0;
alert(array2); //返回1、2、3

concat()
var a = [1,2,3];
document.write(a.concat(4,5));//1,2,3,4,5

发布了24 篇原创文章 · 获赞 0 · 访问量 1114

猜你喜欢

转载自blog.csdn.net/shixueyan_fendou/article/details/103264513