将数字分成javascript中位置数字的总和

时间:2017-07-29 05:01:03

标签: javascript

我正在使用 freecodecamp研究,需要找到一种方法将数字转换为位置数字的总和,如 [1234]到[1000,200,30,4 ] 即可。 代码如下所示:

for(var i=0;i<newArr.length;i++){
    var order = newArr.length-1 - i;
    newArr.splice(i,1,newArr[i]*1e(order));
}

这里newArr将是1234。 节点出错:无效令牌1e(订单)。 需要一些建议如何使其正确。

3 个答案:

答案 0 :(得分:1)

我认为你可以使用以下逻辑

&#13;
&#13;
 var n = 123456;
    n=n.toString();
    var arr = n.split("");
    var b = arr.map(function(x,i) {
       return x * Math.pow(10, (arr.length-i-1));;
    });
    console.log(b);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

&#13;
&#13;
var a = 1234
b = []
while(a>0){
	b.unshift(a%10 * (10 ** b.length))
	a = parseInt(a/10)
}
console.log(b)
&#13;
&#13;
&#13;

答案 2 :(得分:1)

Number.prototype.padRight = function (n,str) {
    return (this < 0 ? '-' : '') + (Math.abs(this)+ Array(n-String(Math.abs(this)).length+1).join(str||'0'));
}
var digits = "1234"
var tempCounter= digits.length;
var result=[];
for(var i=0;i<digits.length;i++,tempCounter--){
    result.push(parseInt(digits[i]).padRight(tempCounter))
}
console.log(result);