function randOrd() {
return (Math.round(Math.random()) - 0.5)
}
A = [0,1,2,3,4,5,6,7]
var B = A.sort(randOrd)
console.log('A=',A)
console.log('B=',B)
输出:
a= [ 3, 4, 0, 1, 6, 2, 5, 7 ]
b= [ 3, 4, 0, 1, 6, 2, 5, 7 ]
我希望a
成为原始数组,并b
进行排序。但它们都是平等的(排序的),为什么?
答案 0 :(得分:5)
因为Array.sort()方法sorts in-place and then returns the array。
答案 1 :(得分:2)
Javascript sort函数对数组进行排序,这意味着它修改原始数组并返回它:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
答案 2 :(得分:0)
因为你在var A上运行方法'sort',它首先将A排序为一个顺序,然后将该数据设置为B ...这就是为什么你得到A和B的相同答案< / p>