我想将一个整数(比如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 ;
答案 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)
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
输入 = 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;
}