首页 > 解决方案 > 有没有更好的方法来实现这一目标?'000000'.slice(0, -'434'.length) + '434' = '000434'

问题描述

是的,标题几乎说明了一切。基本上我想要一个全为零的默认 X 位数。然后,从这个数字,我想用其他数字替换最后一个字符。例如,如果我有'434',默认为'000000',结果应该是'000434'。

在 Ruby 中,这相当于做'%.6d' % 434,它返回'000434'. 如果我要保存的号码超过 6 位,我就用那个号码代替。我意识到,当我使用字符串时,我可以使用这个解决方案:

let base = '000000'
let str = '434'
console.log(base.slice(0, -str.length) + str)

Buuut,即使它是一种简单的方法,我也不知道它是否是最好的。怎么想?

标签: javascript

解决方案


为了与旧的 JS 环境兼容,你可以只依赖一个更简单的切片:

(base + str).slice(-6)

对于现代的,padStart可用:

str.padStart(6, '0')   // or String(num)

推荐阅读