javascript - 给定一个整数数组 ‘num’ 返回该数组加 1

标签 javascript arrays for-loop increment

给定一个整数数组,返回一个新数组,该数组的原始值增加 1。

数组中的每个值不能超过 9,并且不能使用任何将数组转换为整数的函数。

即:

Original Array = [1,2,7,9]
Returned Array = [2,3,8,0]

@param(数组)num
@return(数组)

这就是我目前正在做的事情。只是想知道是否有任何东西会更有效。

function increment (num) {
    for (var i = num.length - 1; i >= 0; i--) {
        num[i]++;
        if (num[i] > 9) num[i] = 0;
        else break;
    }
    return num;
}

console.log(increment([1, 2, 7, 9]));

最佳答案

有一个问题:如果输入数组全部由 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]));

关于javascript - 给定一个整数数组 ‘num’ 返回该数组加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57262488/

相关文章:

c++ - 从 main 中的类访问数组

Java HEX 到 ASCII 的转换、for 循环和所需的其他信息

javascript - 添加非居中文本会移动居中元素

javascript - 是否可以将 iframe 值放在 textarea 中?

javascript - 使用 javascript 从数组中打印 x 个对象

arrays - Postgres array_replace() 函数替换子数组

Javascript 不产生所需的输出

javascript - 如何使用对象的 for 循环来循环 Restfulwebservice

javascript - 如何阻止javascript悬停激活所有其他悬停?

javascript - JS 短参数 url