2014-10-08 73 views
1
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和B在sort()之後是相等的?

a= [ 3, 4, 0, 1, 6, 2, 5, 7 ] 
b= [ 3, 4, 0, 1, 6, 2, 5, 7 ] 

我預期a是原始陣列和b進行排序。但他們都是平等的(排序),爲什麼?

+1

你錯過了很多分號 – mithunsatheesh 2014-10-08 16:56:04

+4

@mithunsatheesh分號在JavaScript中不是強制性的 – 2014-10-08 16:57:21

+1

你可以使用'.slice()'獲得'Array'的淺層克隆 - 'var B = A.sli (0).sort(randOrd);' – 2014-10-08 16:58:13

回答

0

因爲你正在運行的風險價值方法「排序」 ......這首先將A排序,然後將該數據設置爲B ...這就是爲什麼你得到相同的答案A和B

相關問題