js小题狂练(5)--拆分数字

expandedForm( 12); // Should return '10 + 2'
expandedForm( 42); // Should return '40 + 2'
expandedForm( 70304); // Should return '70000 + 300 + 4'

人类的解法:

function expandedForm( num) {
res={};
ans=[];
var weight= 1;
while( num)
{
res[ weight]= num% 10;
weight*= 10;
num= parseInt( num/ 10);
}
for( var i in res)
{
if( res[ i])
ans. unshift( i* res[ i])
}
ans= ans. join( ' + ');
//console.log(ans);
return ans;
}


es 6 箭头极简风格

const expandedForm = n => n. toString()
. split( "")
. map(( num, index, arr) => num+ '0'. repeat( arr. length- index- 1))
. filter(( num) => Number( num)!= 0)
. join( ' + ');
console. log( expandedForm( 70304));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值