搜索
写经验 领红包
 > 游戏

快速让一个数组乱序(将数组顺序打乱的函数)

导语:将数组中乱序的红黄蓝绿进行排序

快速让一个数组乱序(将数组顺序打乱的函数)

要求:

数组:[&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()

本文内容由小信整理编辑!