美文网首页
前端实现一、二、三、四这样的自增

前端实现一、二、三、四这样的自增

作者: 小遁哥 | 来源:发表于2020-08-31 23:08 被阅读0次

    业务中出现了"一级属性"、"二级属性"、"三级属性",因为最多就三级,所以我就

        const strs = ['一', '二', '三'];
    

    那么能不能实现一、二、三、四... 这样的自增呢?

    我想到了

    "一".charCodeAt()
    19968
    

    紧接着

    "二".charCodeAt()
    20108
    

    然而

    "三".charCodeAt()
    19977
    "四".charCodeAt()
    22235
    "五".charCodeAt()
    20116
    "六".charCodeAt()
    20845
    

    好吧,让我们总结下规律

    单个数字
    一、二、三、四、五、六、七、八、九

    两个数字
    一十二、九十、四十八

    三个数字
    一百、一百零七、一百二十八

    哇哦,像极了递归模式,似乎,从左至右依次处理每个数字,根据其所在的位置转换为对应的字符串,最后拼接即可
    举个列子
    23
    2=>二十
    3=>三
    二十三

    123
    1=>一百
    2=>二十
    3=>三
    一百二十三

    103
    1=>一百
    2=>零
    3=>三

    然而当位数增到五位时,情况又会有些变化

    12345
    一万二千三百四十五

    123456
    一十二万三千四百五十六

    1234567
    一百二十三万四千五百六十七

    就处理到千万吧

    要四个数分为一组,递归递中归,这不仅让我想到了那个面试题,千分位字符,"1234"=>"1,234",没想到有生之年在不是面试的时候Q到,缘分啊...,还好我记笔记了

    好的,已经完成98%了,不过还有以下几点需要处理

    四位一组时,有的组不足4位,怎么加"千"、"百",分组时只有一组时,处理加"万"

    还有处理0的情况,比如1200120312035000000301010903310009003

    情况1: 分组后,每组最后一个数不加零

    相关文章

      网友评论

          本文标题:前端实现一、二、三、四这样的自增

          本文链接:https://www.haomeiwen.com/subject/srtesktx.html