如何快速隨機打散一個數字數組?

 

機就離不開Math.random()

既然是一個數字數組,寫過排序吧,有冒泡排序、sort排序等,都能排序成從小到大或從大到小的數組。

那麼暫且看看sort生序排列的寫法:

var a = [10,2,3,5,4,6,7,8,9,1];

var randomSoftArr = function(arr){
	arr.sort(function(a, b){
		return a - b;
	});
	return arr;
}

randomSoftArr(a);

結果如下:

 

既然升序排列的關鍵在於sort函數的回調函數的返回值大於0或小於0或等於0。如果這裏的返回值並不依賴於數組項,而是隨機的呢? 

var a = [1,2,3,4,5,6,7,8,9,10];

var randomSoftArr = function(arr){
	arr.sort(function(a, b){
		return Math.random() - 0.5;
	});
	return arr;
}

randomSoftArr(a);

結果如下:

 

至此,問題得以解決!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章