要求:
数组: ["红", "黄", "红", "绿", "蓝", "绿", "红", "绿", "蓝", "蓝", "黄"] 排序成: ["红", "红", "红", "黄", "黄", "蓝", "蓝", "蓝", "绿", "绿", "绿"]
思路:
将数组中的红黄蓝绿对应成数字1,2,3,4,使用sort进行从小达到排序,然后把数组中的数字对应回成红黄蓝绿
let arr=["红", "黄", "红", "绿", "蓝", "绿", "红", "绿", "蓝", "蓝", "黄"] function a(){ //map遍历 把文字替换成数字 let newArr=arr.map(c=>{ return c.replace(‘红‘,1).replace(‘黄‘,2).replace(‘蓝‘,3).replace(‘绿‘,4) }) //排序数字 newArr=newArr.sort((a,b)=>a-b) //把数字替换成文字 newArr=newArr.map(c=>{ return c.replace(1,‘红‘).replace(2,‘黄‘).replace(3,‘蓝‘).replace(4,‘绿‘) }) console.log(newArr)//["红","红","红","黄","黄","蓝","蓝","蓝","绿","绿","绿"] } a()
将数组中乱序的红黄蓝绿进行排序,达到[红...黄...蓝...绿...]的效果
原文:https://www.cnblogs.com/wuhairui/p/13695594.html