随机排序数组
做随机显示推荐广告的时候,需要随机排序数据数组,就动手写了一个,如下:
1 function randomOrder (targetArr) { 2 var originalArr = targetArr; 3 var newArr = []; 4 var arrLength = targetArr.length; 5 var j = -1; 6 var tmpObj = {}; 7 for(var i = 0;i < arrLength;i++){ 8 while(true) { 9 if(tmpObj[j = parseInt(arrLength * Math.random())] == undefined) { 10 tmpObj[j] = 1; 11 console.log(j); 12 break; 13 } 14 } 15 newArr[i] = originalArr[j]; 16 } 17 return newArr; 18 }
但是..后来在网上看到大师写的方法,觉得自己瞬间被秒杀到渣都不剩,如下:
function sortNumber(a,b) { return Math.random() - 0.5; } var arr = arr=[9,3,1,2,5,8,4,7,6,0]; arr.sort(sortNumber);
自己实在有太多太多需要学习了!!