> 游戏
快速让一个数组乱序(将数组顺序打乱的函数)
导语:将数组中乱序的红黄蓝绿进行排序
要求:
数组:[&34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;]排序成:[&34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;]
思路1:
将数组中的红黄蓝绿对应成数字1,2,3,4,使用sort进行从小达到排序,然后把数组中的数字对应回成红黄蓝绿
let arr=[&34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;, &34;]function a(){ //map遍历 把文字替换成数字 let newArr=arr.map(c=>{ return c.replace(&39;,1).replace(&39;,2).replace(&39;,3).replace(&39;,4) }) //排序数字 newArr=newArr.sort((a,b)=>a-b) //把数字替换成文字 newArr=newArr.map(c=>{ return c.replace(1,&39;).replace(2,&39;).replace(3,&39;).replace(4,&39;) }) console.log(newArr)//[&34;,&34;,&34;,&34;,&34;,&34;,&34;,&34;,&34;,&34;,&34;]}a()
思路2:
创建文字对应的数字对象,新数组是map出来的,元素有文字对应的数字,排序数字,map遍历出文字
function b(){ //创建map对象 let mapObj={ &39;:1, &39;:2, &39;:3, &39;:4, } let mapArr=arr.map(c=>{ return { text:c,//对应文字 num:mapObj[c],//对应数字 } }) let newArr=mapArr.sort((a,b)=>a.num-b.num)//排序数字 newArr=newArr.map(c=>{ return c.text//map出文字 }) console.log(newArr)}b()
本文内容由小信整理编辑!