2 回答
TA贡献1797条经验 获得超6个赞
有一个问题:如果输入数组由所有 9 组成,您需要一个所需的输出,例如,[1, 0, 0, 0, 0](而不是[0, 0, 0, 0]):
function increment (num) {
for (var i = num.length - 1; i >= 0; i--) {
num[i]++;
if (num[i] > 9) {
num[i] = 0;
if (i === 0) {
// Last iteration, but we need to carry - unshift a 1:
num.unshift(1);
}
}
else break;
}
return num;
}
console.log(increment([1, 2, 7, 9]));
console.log(increment([3, 9, 9, 9]));
console.log(increment([9, 9, 9, 9]));
console.log(increment([1, 1, 1, 1]));
TA贡献1776条经验 获得超12个赞
有点晚了,但这是一个递归版本,如果参数是[9,9,9,9].
function increment(array, index = NaN) {
if (isNaN(index)) {
index = array.length - 1;
}
if (++array[index] % 10 === 0) {
array[index] = 0;
increment(array, --index);
}
return array;
}
console.log(increment([1,2,7,9]))
console.log(increment([9,9,9,9]))
添加回答
举报