面试题1 2020-09-16

 题目1: 

       ["# a", "## b", "## c", "### d", "# e"]

       输出: [{hn: "1", title: "a"}
                    {hn: "1.1", title: "b"}
                    {hn: "1.2", title: "c"}
                    {hn: "1.21", title: "d"}
                    {hn: "2", title: "e"}]

function formatArr(arr) {

      let result = [];

      let floor =  0;

      for(let i = 0; i < arr.length; i++) {

          const sub = arr[i].split(" ");

          const first = sub[0];

          const last = sub [1];

          if(!first || !last || first.indexOf("#") == -1) {

              alert("数据格式有误");

          }

          const precentL = first.length;

          let precent =  1 / Math.pow(10, precentL - 1)  //    幂乘


          if( precent < 1 ) {

            floor  =  floor  + precent; 

          }
          if(precentL == 1) {

              floor  = Math.floor(floor) + 1;

          }

          result.push({

              hn:  floor.toFixed(precentL - 1),

              title:   last          

          })

            

      }

      return result;

    }
    console.log(formatArr(["# a", "# g", "## b", "## c", "### d", "## e", "# f"]))
    console.log(formatArr(["# a", "## b", "## c", "### d", "# e"]))
    console.log(formatArr(["# a", "# b", "# c", "### d", "## e", "# f"]))

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值