zoukankan      html  css  js  c++  java
  • 将数组中乱序的红黄蓝绿进行排序,达到[红...黄...蓝...绿...]的效果

    要求:

    数组:
    ["", "", "", "绿", "", "绿", "", "绿", "", "", ""]
    排序成:
    ["", "", "", "", "", "", "", "", "绿", "绿", "绿"]

    思路1:

    将数组中的红黄蓝绿对应成数字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()

    思路2:

    创建文字对应的数字对象,新数组是map出来的,元素有文字对应的数字,排序数字,map遍历出文字

    function b(){
        //创建map对象
        let mapObj={
            '红':1,
            '黄':2,
            '蓝':3,
            '绿':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()
  • 相关阅读:
    Python: 编程遇到的一些问题以及网上解决办法?
    Python: Win7下使用 pip install lxml 无法安装lxml?
    Python:Pycharm下无法导入安装好的第三方模块?
    Python:如何删除文件中的空白行?
    Pycharm 快捷键
    Python读取二进制文件
    python实现grep
    Python学习笔记
    VBA批量查找和复制文件
    %~dp0是什么意思
  • 原文地址:https://www.cnblogs.com/wuhairui/p/13695594.html
Copyright © 2011-2022 走看看