Javascript 将数字拆分为数组

Javascript 将数字拆分为数组,javascript,arrays,Javascript,Arrays,好的,我试着把一个数字完全分解成一个数组。例如: var num = 55534; var arr = []; <- I would want the Array to look like this [5,5,5,3,4] 但这次我实际上需要使用这些数字,所以它们不能是字符串。你们会怎么说 更新,由于某种原因编辑后,每次运行我的代码都会崩溃: function DashInsert(num) { num += ""; var arr = num.split("").map(

好的,我试着把一个数字完全分解成一个数组。例如:

var num = 55534;
var arr = []; <- I would want the Array to look like this [5,5,5,3,4] 
但这次我实际上需要使用这些数字,所以它们不能是字符串。你们会怎么说

更新,由于某种原因编辑后,每次运行我的代码都会崩溃:

function DashInsert(num) { 

  num += "";
  var arr = num.split("").map(Number); // [9,9,9,4,6]
  for(var i = 0; i < arr.length; i++){
    if(arr[i] % 2 === 1){
    arr.splice(i,0,"-");
    }// odd
  }
  return arr.join(""); 

}
函数DashInsert(num){
num+=“”;
var arr=num.split(“”).map(Number);/[9,9,9,4,6]
对于(变量i=0;i
我会像下面那样做

var num = 55534;
var arr = num.toString().split(''); //convert string to number & split by ''
var digits = arr.map(function(el){return +el}) //convert each digit to numbers
console.log(digits); //prints [5, 5, 5, 3, 4]
基本上,我将每个字符串转换为数字,您也可以将
Number
函数传递到map

var num = 55534;
var arr = num.toString().split(''); //convert string to number & split by ''
var digits = arr.map(function(el){return +el}) //convert each digit to numbers
console.log(digits); //prints [5, 5, 5, 3, 4]

基本上,我正在将每个字符串转换为数字,您也可以将
Number
函数传递到map中。

您可以执行已经执行的操作,并将数字映射回:

55534..toString().split('').map(Number)
//^ [5,5,5,3,4]

您可以执行已执行的操作,并将数字映射回:

55534..toString().split('').map(Number)
//^ [5,5,5,3,4]
…很快就能完成你的任务



…将轻松完成您的任务。

看起来很棒,每次运行代码时都会进行编辑crashes@user3890432撞车?你在使用什么Javascript解释器,抛出什么异常?在Chrome中非常有用36@Fengyang王:我刚刚使用codeacademy.com来编译它。运行时窗口似乎冻结了。@user3890432代码中似乎有一个无限循环,但这与数组本身无关,而是与
for
循环相关。查看原始帖子上的评论。看起来很棒,每次我运行代码时都会进行编辑crashes@user3890432撞车?你在使用什么Javascript解释器,抛出什么异常?在Chrome中非常有用36@Fengyang王:我刚刚使用codeacademy.com来编译它。运行时窗口似乎冻结了。@user3890432代码中似乎有一个无限循环,但这与数组本身无关,而是与
for
循环相关。请参阅原始帖子上的评论。为什么需要双重
?我以前没见过。如果没有它,我会得到一个意外的标记错误,因为数字可以有小数,所以您需要消除表达式的歧义。
(''+55534)
的键入难度要小得多。:-)为什么需要双重
?我以前没见过。如果没有它,我会得到一个意外的标记错误,因为数字可以有小数,所以您需要消除表达式的歧义。
(''+55534)
的键入难度要小得多。:-)您的代码每次迭代都会向数组中添加一个额外的元素“-”(
arr.splice(i,0,“-”
删除零个元素,然后在位置
i
处添加“-”)。因此,它永远不会完成迭代。您的
for
循环是无限的。请注意,它正在一遍又一遍地读取同一个元素,因为添加“-”意味着它正在读取的元素在一个索引上移动,并将在下一次迭代中再次读取。啊,我现在明白了,谢谢!您的代码每次迭代都会向数组中添加一个额外的元素“-”(
arr.splice(i,0,“-”
删除零个元素,然后在位置
i
处添加“-”)。因此,它永远不会完成迭代。您的
for
循环是无限的。请注意,它正在一遍又一遍地读取同一个元素,因为添加“-”意味着它正在读取的元素在一个索引上移动,并将在下一次迭代中再次读取。啊,我现在明白了,谢谢!