如何快速随机打散一个数字数组?

 

机就离不开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);

结果如下:

 

至此,问题得以解决!

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