js sort排序的时候也会对原数组排序的解决办法

看如下例子

var a = [1,3,2];
var b = a;
b.sort();
console.log(a);//[1,2,3]
console.log(b);//[1,2,3]

a赋值给b,当对数组b排序的时候,数组a也同时进行了排序,这是由于对对象进行赋值的时候,赋值的其实是一个引用。

那么,怎么解决这个问题呢,让其排序是不修改原数组,如下方式即可, 这表示b为另外一个对象,并不是数组a的引用,那么上面的这个问题就不存在了。

var b = a.slice(0);

也可以使用es6的语法完成数组的复制

let b = [...a]
//或者
let [...b] = a

参考地址:https://segmentfault.com/q/1010000000607136

如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注