如何分隔整个javaScript编号并将它们分别相乘

时间:2015-12-29 11:47:40

标签: javascript

我要做的是将像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);

3 个答案:

答案 0 :(得分:2)

它适用于任意数量的数字

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:0)

正如@James Thorpe所说,你需要为你更好地定义什么,但这似乎更整洁,并且支持任何数字(不仅仅是4位数)

&#13;
&#13;
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;
&#13;
&#13;

答案 2 :(得分:0)

您是否想要转换更高的数字?

你可以试试这样的东西(虽然不是很优雅):

&#13;
&#13;
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;
&#13;
&#13;