如何将整数转换为数字数组

时间:2013-10-04 13:20:07

标签: javascript

我想将一个整数(比如12345)转换为像[1,2,3,4,5]这样的数组。 我尝试过以下代码,但是有更好的方法吗?

var n = 12345;
var arr = n.toString().split('') ;
for(i=0;i<arr.length;i++) arr[i] = +arr[i]|0 ;

15 个答案:

答案 0 :(得分:11)

我会去

var arr = n.toString(10).replace(/\D/g, '0').split('').map(Number);

如果您确定replace没有小数,则可以省略n

答案 1 :(得分:6)

var n = 12345;
var arr = ('' + n).split('').map(function(digit)  {return +digit;});

但是,地图功能仅受最近浏览器的支持。

答案 2 :(得分:3)

我这样做,以避免在不需要时使用字符串:

var n = 12345;
var arr = [];
while(n>0){arr.unshift(n%10);n=n/10|0;}

答案 3 :(得分:2)

另一种方法是使用文字,然后传播:

const n = 12345;
const arr = [...`${n}`].map(Number);
console.log(arr);

答案 4 :(得分:1)

**** 2019答​​案 ****

Array.from(String(12345), Number);

示例

const numToSeparate = 12345;

const arrayOfDigits = Array.from(String(numToSeparate), Number);

console.log(arrayOfDigits);   //[1,2,3,4,5]

答案 5 :(得分:0)

我先将数字转换为字符串,然后使用Array.from()将字符串转换为数组。

let dataArray = Array.from(value.toString());

答案 6 :(得分:0)

可运行代码段:

const n = 12345;
let toIntArray = (n) => ([...n + ""].map(Number));
console.log(toIntArray(n));

答案 7 :(得分:0)

首先,将整数转换为字符串,然后转换为数组。使用地图功能 借助parseInt函数将单个字符串转换为数字。 最后,该数组作为结果返回。

const digitize = n => [...`${n}`].map(i => parseInt(i));

答案 8 :(得分:0)

建议的解决方案在大多数情况下都可以正常工作,但不适用于负数。

有针对此类情况的解决方案。

const intToArray = (int) => {
  return String(int).match(/-?\d/g).map(Number)
}

console.log(intToArray(312)) // [3, 1, 2]
console.log(intToArray(-312)) // [-3, 1, 2]

答案 9 :(得分:0)

您可以使用内置的 JS 方法 toString() 和 parseInt() 作为:

function toDigitsArr(num) {
  num = num.toString();
  let numArr = [];
  for (let i = 0; i < num.length; i++) {
    numArr[i] = parseInt(num[i]);
  }
  return numArr;
}
console.log(toDigitsArr(9119));

答案 10 :(得分:0)

你可以这样做

let n = 12345;
let arr = (""+n).split('');//HERE IS THE ARRAY
///Now for, for loop, you can do something like this
arr.map(element=>{
//Do Something
})

答案 11 :(得分:0)

使用地图(数字)。下面的代码片段可能会有所帮助。

 var num = 1230945;
 var result=num.toString().split('').map(Number);
 console.log(result);

答案 12 :(得分:0)

你们太棒了,有很多方法可以做到这一点。让我考虑一下这个问题。如果此方法有问题,请提供反馈。

    let fromNumberToArray = [...num.toString()].map(Number);

答案 13 :(得分:0)

日期:24/07/2021

使用 ES6 方法 #2021

<块引用>

输入 = 12345

<块引用>

输出 = [1,2,3,4,5]

const input = 12345;
console.log(`${input}`.split('').map(Number));

答案 14 :(得分:-1)

这是我通常用于此的两种方法。第一种方法:

function toArr1(n) {
    "use strict";
    var sum = 0;    
    n = Array.from(String(n), Number); 
       /*even if the type of (n) was a number it will be treated as a string and will 
    convert to an Array*/
    for (i = 0; i < n.length; i += 1) {
        sum += n[i];
    }
    return sum;
}

第二种方法:

function toArr2(n) {
    var sum = 0;
    n = n.toString().split('').map(Number);
    for (i = 0; i < n.length; i += 1) {
        sum += n[i]; 
    }
    return sum;
}