为了账号安全,请及时绑定邮箱和手机立即绑定

JS对传递值的数组sort(),原数组也被排序了,原理是什么?怎么复制数组sort()后不影响原数组?

JS对传递值的数组sort(),原数组也被排序了,原理是什么?怎么复制数组sort()后不影响原数组?

波斯汪 2019-04-13 08:45:25
详看代码: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//true
n1==numbers//false
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 352 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信