arr.sort() 默认升序,可接受两个参数,返回值为正数则交换位置
// 升序,返回值为-1 arr.sort((a,b) => { return a-b }) // 降序,返回值为1 arr.sort((a,b) => { return b-a }) // 对象中根据属性值排序 var arr = [ {name:'zopp',age:0}, {name:'gpp',age:18}, {name:'yjj',age:8} ] function compare(property) { return (a, b) => { var value1 = a[property] var value2 = b[property] return value1 - value2 } } console.log(arr.sort(compare('age')))数组乱序
var arr = [1,2,3,4,5,6,7,8,9] arr.sort((a,b) => { return Math.random() - 0.5 }) console.log(arr) // forEach遍历,随机生成下标,交换位置 function disorderArr(arr) { arr.forEach((e, i, a) => { let randomIndex = Math.round(Math.random()*i) let temp = a[randomIndex] a[randomIndex] = a[i] a[i] = temp }) return arr } console.log(disorderArr(arr)) // 洗牌原理:从数组的最后位置开始,从前面随机一个位置,对两个数进行交换,直到循环完毕 function shuffleSort(arr) { let i = arr.length - 1 while(i>0) { let rIndex = Math.floor(Math.random()*i) let temp = arr[rIndex] arr[rIndex] = arr[i] arr[i] = temp i-- } return arr } console.log(shuffleSort(arr1))