我想将一个整数,比如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;
我想将一个整数,比如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;
这一行代码就可以解决问题:
Array.from(String(12345), Number);
const numToSeparate = 12345;
const arrayOfDigits = Array.from(String(numToSeparate), Number);
console.log(arrayOfDigits); //[1,2,3,4,5]
1- String(numToSeparate)
会将数字12345转换为字符串,返回'12345'
2- Array.from()
方法从类似数组或可迭代对象创建一个新的数组实例,字符串'12345'是一个可迭代对象,因此它将从中创建一个数组。
3- 在创建这个新数组的过程中,Array.from()
方法会首先将任何可迭代元素(例如:'1'、'2')传递给我们声明为第二个参数的回调函数(在本例中就是Number
函数)。这是可能的,因为字符串是一个“类似数组”的对象。
为了使它更简单,我们可以将回调声明为:
Array.from(String(numToSeparate), n => Number(n)
4- Number
函数将取任何字符串字符并将其转换为数字,例如:Number('1')
;将返回1
。
5- 这些数字将一个接一个地添加到一个新数组中,最终将返回这个数字数组。
摘要
代码行Array.from(String(numToSeparate), Number);
将把数字转换成字符串,取该字符串的每个字符,将其转换为数字并放入一个新的数组中。最后,这个新的数字数组将被返回。
var arr = n.toString(10).replace(/\D/g, '0').split('').map(Number);
如果你确定 n
没有小数,那么可以省略 replace
。
如果不必要使用字符串,我会这样做:
var n = 12345;
var arr = [];
while(n>0){arr.unshift(n%10);n=n/10|0;}
var n = 12345;
var arr = ('' + n).split('').map(function(digit) {return +digit;});
然而,只有较新版本的浏览器支持map函数。
map
函数”会更加恰当。 - Zathrus Writer日期:2021年7月24日
input = 12345
output = [1,2,3,4,5]
const input = 12345;
console.log(`${input}`.split('').map(Number));
const n = 12345;
const arr = [...`${n}`].map(Number);
console.log(arr);
使用Map(Number)。下面的代码片段可能会有帮助。
var num = 1230945;
var result=num.toString().split('').map(Number);
console.log(result);
我首先将数字转换为字符串,然后使用Array.from()将字符串转换为数组。
let dataArray = Array.from(value.toString());
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));
你可以像这样做
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
})
.map(Number)
或.map(parseInt)
,但这不会像您的位运算那样将NaN
转换为0
。 - Bergi|0
? - nnnnnn.map(Number)
。 - Nick Orlando