详看代码:varnumbers=[4,2,5,1,3],n1=numbers,n2=numbers;n1.sort(function(a,b){returna-b;});console.log(numbers,n1,n2);//结果都是[1,2,3,4,5]谁能否给解释一下原理,另外怎样能够复制数组sort()之后不影响原数组?
2 回答
心有法竹
TA贡献1866条经验 获得超5个赞
进行对象赋值的时候,赋值的是对象的引用。可以copy一个对象实现。varnumbers=[4,2,5,1,3],n1=numbers.slice(0),n2=numbers;n1.sort(function(a,b){returna-b;});console.log(numbers,n1,n2);这里n2和numbers还是一个对象,但n1是另一个对象,只是对象的内容一样而已。varnumbers=[4,2,5,1,3],n1=numbers.slice(0),n2=numbers;n2==numbers//truen1==numbers//false
添加回答
举报
0/150
提交
取消