gpt4 book ai didi

javascript - 在通过 javascript 以扩展形式写入数字时打印出额外的 0

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:29:28 28 4
gpt4 key购买 nike

似乎无法弄清楚为什么我总是打印出额外的 0。

截至目前,如果值为 730,则会显示以下内容:

Expected: '700 + 30', instead got: '700 + 30 + 0'

标准:

“您将获得一个数字,您需要将其作为扩展形式的字符串返回。例如:

12 应该返回 10 + 2

42 应该返回 40 + 2

70304 应该返回 70000 + 300 + 4

注意:所有数字都是大于 0 的整数。"


function expandedForm(num) {
var i,
position,
numArr = Array.from(num.toString()).map(Number),
numArrLen = numArr.length,
result = '';
if(num < 10){
return num;
} else {
for(i = 0; i < numArrLen; i++){
position = numArrLen-1-i;

if( i === numArrLen-1 ){
result += numArr[i] * Math.pow(10, position);
console.log('done',result);
} else {
if(numArr[i] !== 0){
result += numArr[i] * Math.pow(10, position) + " + ";
console.log('keep going',result);
} else {
continue;
console.log('zero', result);
}
}
}
return result;
}
}

最佳答案

好吧,它进入第一个 if 检查,它不考虑零,所以你需要检查它是否在那次检查中为零。

if (i === numArrLen-1 && numArr[i]!==0)

之后你会遇到的问题是你会有一个尾随 +

我会做的不是添加字符串,而是推送到一个数组并加入

var result = []
result.push(30)
result.push(2)
console.log(result.join(" + ")

而且可以用数组的方法来实际求解。

(102030).toString().split("").map((n,i,a) => n*Math.pow(10, a.length-i-1)).filter(n => n>0).join(" + ")

关于javascript - 在通过 javascript 以扩展形式写入数字时打印出额外的 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45045514/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com