排序()后为什么A和B相等?

时间:2014-10-08 16:53:39

标签: javascript sorting

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进行排序。但它们都是平等的(排序的),为什么?

3 个答案:

答案 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>