二维数组使用padStart函数报错:TypeError: r[0].padStart is not a function
问题分析与解决方法
错误原因
numbers数组中的元素是数字类型(500、300、800均为Number),而padStart()是字符串(String)的专属方法,数字无法直接调用该方法,因此触发TypeError: r[0].padStart is not a function错误。
修正方案
方案1:先转字符串再调用padStart
这是通用方案,适配任意位数的数字补零需求:
const numbers = [ [500], [300], [800] ]; const res = numbers.map(function (r) { // 将数字转为字符串后,调用padStart补零到4位 return r[0].toString().padStart(4, '0'); }) Logger.log(res); // 输出 ["0500", "0300", "0800"]
方案2:字符串拼接(适用于固定位数场景)
如果确定原数字都是3位,可直接通过字符串拼接添加前导零:
const numbers = [ [500], [300], [800] ]; const res = numbers.map(function (r) { return `0${r[0]}`; }) Logger.log(res);
注意事项
JavaScript中数字类型会自动忽略前导零,因此带前导零的数值只能以字符串形式存储,无法作为数字保留前导零。
内容的提问来源于stack exchange,提问作者Borgher
相关产品推荐
相关产品推荐

