JavaScript如何将数字拆分为展开式并以+符号拼接结果
问题原因
join()是数组的专属方法,你代码里将它用在"0".repeat()返回的字符串上,自然不会生效。- 你当前直接将拆分结果拼接到字符串变量中,没有合适的分隔符拼接载体,需要先将有效拆分结果存入数组,最后统一拼接。
- 额外注意:如果当前位是0,对应的拆分结果就是0,需要过滤掉,否则最终输出会多出多余的
+ 0。
修正后代码
function expandedForm(num) { const numArr = num.toString().split(""); const len = numArr.length; const resultArr = []; for (let i = 0; i < len; i++) { const current = numArr[i]; if (current !== '0') { // 计算当前位的展开值 const item = current + '0'.repeat(len - 1 - i); resultArr.push(item); } } return resultArr.join(" + "); }
效果验证
expandedForm(1220)输出"1000 + 200 + 20"expandedForm(221)输出"200 + 20 + 1"
内容的提问来源于stack exchange,提问作者Ali Ulmasov
相关产品推荐
相关产品推荐

