面试题-Array最后一位加法运算

最近去公司面试遇到一个关于Array操作的问题如下:

实现 [5,6,9] + 1 = [5,7,0];

当时回答的时候提出的一种方案是采用Array的reduceRight操作

1
2
3
4
5
6
7
8
9
10
11
var arr = [5,6,9];
arr.reduceRight(function(prev, next,index,self){
if(next + prev >= 10){
self[index] = prev + next - 10;
return 1;
}else{
self[index] = prev + next;
return 0;
}
},1);
console.log(arr); // [5,7,0]