You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现返回数字展开形式数组的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:06:05