美文网首页
算法练习02 实现数字千分位分割

算法练习02 实现数字千分位分割

作者: 多啦斯基周 | 来源:发表于2018-11-18 14:04 被阅读0次

    题目(2018-11-18)

    输入一个数字,将数字按照用逗号分隔,例如输入1234.56,结果是1,234.56

    实现

    关键点是,这种分隔方法是从右至左的分隔,用普通的slice方法是从左至右的分隔,例如:

    12345正确的结果是12, 345,而用普通的slice方法结果是123, 45

    如果图简单,可以直接使用内置的方法:

    // 内置的方法
    Number.toLocalString();
    
    const a = 12345.11;
    console.log(a.toLocalString()); // 123,45.11
    

    如果是为了锻炼算法,则需要手写:

    /**
      * 输入数组,返回按照位数分割的数组
      * @param number 传入的数字
      * @param range 按照此位数将数字分割
      * @returns {string} 返回用逗号分隔的字符串
      */
      
    const splitStr = (number, range = 3) => {
      let str = number.toString();
      const[left, right] = str.split('.');
      const strArr = left.split('').reverse();
      let result = [];
      for (let i = 0; i < strArr.length; i += range) {
        result.push(strArr.slice(i, i + range).reverse().join(''))
      }
      return `${result.reverse().join(',')}.${right}`
    };
    
    const a = 12345.11;
    console.log(splitStr(a)); // 123,45.11
    

    相关文章

      网友评论

          本文标题:算法练习02 实现数字千分位分割

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