我要做的是将像1986或364这样的整数分开并将它们添加到像[1000,900,80,6]或[300,60,4]这样的数组中,无论多大都没关系或小数字。
function convert(num) {
var numbers = String(num).split("");
var times = [1000, 100, 10, 1];
var converted = [];
for(var i = 0; i < numbers.length; i++){
converted.push(numbers[i] * times[times.length - numbers.length + i]);
}
return converted;
}
convert(360);
答案 0 :(得分:2)
它适用于任意数量的数字
function convert(num) {
var temp = num.toString();
var ans = [];
for (var i = 0; i < temp.length; i++) {
//get the ith character and multiply with correspondng powers of 10
ans.push(parseInt(temp.charAt(i)) * Math.pow(10, temp.length - i - 1));
}
return ans;
}
convert(39323680);
&#13;
答案 1 :(得分:0)
正如@James Thorpe所说,你需要为你更好地定义什么,但这似乎更整洁,并且支持任何数字(不仅仅是4位数)
function seperateNumber(num) {
var seperated = [];
while (num > 0) {
var mod = num % 10;
seperated.push(mod);
num = (num - mod) / 10;
}
return seperated;
}
console.log(seperateNumber(1986));
&#13;
答案 2 :(得分:0)
您是否想要转换更高的数字?
你可以试试这样的东西(虽然不是很优雅):
function convert(num) {
var numbers = String(num).split("");
converted = [];
numbers.reverse();
numbers.forEach(function(element, index) {
converted.push(element*Math.pow(10,index));
});
return converted.reverse();
}
console.log(convert(19813));
&#13;