我正在做一些代码练习,即将创建一个函数expandedForm来接受一个数字参数,下面的例子会更清楚..
expandedForm(12); // Should return '10 + 2'
expandedForm(42); // Should return '40 + 2'
expandedForm(70304); // Should return '70000 + 300 + 4'
我的解决方案:
function expandedForm(num) {
// Your code here
let numStr = num.toString().split('');
for(let i = 0 ; i < numStr; i++ ){
for(let y = numStr.length; y > 1; y--){
numStr[i] += '0';
// console.log(y); use this to debug y, and no y value print out from console
}
}
return numStr.join('+')
}
console.log(expandedForm(23));
如果我测试 expandForm(23),结果是“2+3”,y 值也没有打印到控制台,谁能告诉我我的解决方案有什么问题?谢谢。
解决方案
谢谢大家,感谢您指出我的variable y初始 in for 循环不正确,i < numStr以及(愚蠢的错误)。
在查看我的代码并受到以下一些建议的启发后,我的最终解决方案是
function expandedForm(num) {
// Your code here
let numStr = num.toString().split('');
for(let i = 0 ; i < numStr.length; i++ ){
for(let y = numStr.length - i; y > 1; y--){
numStr[i] += '0';
// console.log(y); use this to debug y, and no y value print out from console
}
}
numStr = numStr.filter(value => !value.startsWith(0));
return numStr.join(' + ')
}
console.log(expandedForm(23));
侃侃无极
相关分类