美文网首页前端面试题前端工程小技巧
字符串补全长度(padStart)

字符串补全长度(padStart)

作者: 千茉紫依 | 来源:发表于2019-04-08 20:32 被阅读0次

题目:完成函数 centerPad 可以让一个字符串居中包裹在指定的可重复填充的字符串中间,例如:

centerPad('Hello', 13, 'abc') // => 'abcaHelloabca'
centerPad('Gook Luck!', 30, '*~') // => '*~*~*~*~*~Gook Luck!*~*~*~*~*~'
第一个参数为被包裹字符串,
第二个参数为最终的字符串长度,
第三个参数为用来填充的字符。

如果字符串无法完全居中,那么让字符串偏左,例如:

centerPad('Hello', 10, 'abc') // => 'abHelloabc'

答案:
看到这道题我是有思路的,分别算出左侧和右侧需要的字符数,然后通过while控制两侧字符生成

   我的答案:
   const centerPad = (str, len, pad) => {
        let strLen=str.length
        if(strLen>len) return str
        let leftLen= Math.floor((len-strLen)/2)
        let rLen=len-strLen-leftLen
        let leftArr=[],rArr=[]
        let padArr=[...pad]
        let padStr=0
        while(leftLen){
            if(padStr==padArr.length)
                padStr=0
            leftArr.push(padArr[padStr])
            leftLen--
            padStr++
        }
        padStr=0
        while(rLen){
            if(padStr==padArr.length)
                padStr=0
            rArr.push(padArr[padStr])
            rLen--
            padStr++
        }
        let r=leftArr.join('')+str+rArr.join('')
        console.log(r);
        return r
    }; 

看过参考答案,发现es2017发布了字符串补全长度的功能,padStart()用于头部补全,padEnd()用于尾部补全。第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。例如:
'xxx'.padStart(9, 'abc') // 'abcabxxx
于是,就有了答案二,果然简洁许多,相比方案一,也没有思维难度

我的答案二:
    const centerPad = (str, len, pad) => {
        let strLen=str.length
        if(strLen>len) return str
        let leftLen= Math.floor((len-strLen)/2)
        let r=str.padStart(leftLen+strLen,pad)
        r=r.padEnd(len,pad)
        return r
    };

相关文章

  • javaScript 数字自动补0

    padStart()、 padStart() 方法 ES2017 引入了字符串补全长度的功能。如果某个字符串不够指...

  • padStart(),padEnd()字符串补充指定元素应用

    ES6 引入了字符串补全长度的功能,如果某个字符串不够指定长度,会在头部活尾部补全。 padStart() 用于头...

  • JavaScript字符串、数组操作

    ES6语法引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部...

  • 字符串es6新方法

    ES6 引入了字符串补全长度的功能,如果某个字符串不够指定长度,会在头部活尾部补全。padStart 和 padE...

  • 日期格式转换

    es6字符串方法padStart()方法,padEnd()方法字符串补全长度的功能。如果某个字符串不够指定长度,会...

  • 字符串补全长度(padStart)

    题目:完成函数 centerPad 可以让一个字符串居中包裹在指定的可重复填充的字符串中间,例如: 答案:看到这道...

  • 2020-03-03 es6新增特性1

    padStart(num,str) padEnd(num,str) 字符串补全长度 一共接受两个参数,第一个参数...

  • JS 时间戳和字符串补全

    获取当前时间戳: 字符串 padStart()、 padEnd() 补全使用 includes 判断一个字符串里面...

  • ES6新增的padStart()方法和padEnd()方法

    padStart() 用于头部补全; padEnd() 用于尾部补全。

  • 2018-07-17

    部分手机不兼容的String对象的方法 padStart方法 padStart方法可以用来补充字符串长度的,用例如...

网友评论

    本文标题:字符串补全长度(padStart)

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