如何实现返回数字展开形式数组的JavaScript函数?
实现方案
核心逻辑
- 将传入的数字转为字符串,遍历每一位字符
- 每一位数值乘以对应位权(10的n次方,n为当前位右侧剩余的位数)
- 过滤掉值为0的项,适配数字中间/末尾有0的场景
完整代码实现
function expandedForm(num: number): number[] { // 适配输入为0的场景,不需要可删除 if (num === 0) return [0] const numStr = num.toString() const len = numStr.length return numStr .split('') .map((digit, index) => { // 计算当前位的位权 const weight = Math.pow(10, len - index - 1) return Number(digit) * weight }) .filter(item => item !== 0) }
测试验证
console.log(expandedForm(8571)) // 输出 [ 8000, 500, 70, 1 ] console.log(expandedForm(1024)) // 输出 [ 1000, 20, 4 ] console.log(expandedForm(500)) // 输出 [ 500 ]
提示:如果业务场景明确输入的数字每一位都不为0,可删除最后的filter步骤减少运算。
内容的提问来源于stack exchange,提问作者user13945859
相关产品推荐
相关产品推荐

