将数组转换为单个数字,加1,然后转换回数组

时间:2015-04-11 22:33:51

标签: javascript arrays

我想将单个数字整数数组转换为单个整数,加1,然后将其转换回单个数字数组。

例如:var arr = ([4,8,6,9])需要成为([4,8,7,0])

但它需要在一个函数中运行,例如:

function plusArray([4, 8, 6, 9]){

}

使用JavaScript实现此目标的最佳方式是什么?


好的家伙,更新!

此代码目前正在运作:

function arrayUp(arr){
  var toNum = parseInt(arr.join('')) + 1;
  arr = toNum.toString().split('').map(Number);
  return arr;
}

除了我现在收到错误。即,"预期:null,而不是:[2]"。根据我的练习,"在数组中只允许正数,单位数整数,因此如果任何数组值为负数或超过10"则函数应返回null。

我需要在上面的代码中调整什么?

2 个答案:

答案 0 :(得分:1)

试试这个:

var arr=[4,8,6,2];
var toNum=parseInt(arr.join(''))+1;
arr=toNum.toString().split('').map(Number);
console.log(arr);//[4, 8, 6, 3]

功能:

function addOne(arr){
    for(var i=0;i<arr.length;i++){
        if(arr[i]>9 || arr[i]<-1)return null;
    }
    var toNum=parseInt(arr.join(''))+1;
    arr=toNum.toString().split('').map(Number);
    return arr;
}
var a=[4,8,6,2];
a=addOne(a);

答案 1 :(得分:-1)

类似的东西:

function plusArray(a){
    var mul=1,n=0;
    for (var i=a.length;i;i--){ n += a[i-1]*mul; mul *= 10; }
    n++; a=[];
    while(n){ a.unshift(n % 10); n=Math.floor(n/10); }
    return a;
}