我想将单个数字整数数组转换为单个整数,加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。
我需要在上面的代码中调整什么?
答案 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;
}