给定一个整数数组 'num' 返回递增 1 的数组

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


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


IE:


Original Array = [1,2,7,9]

Returned Array = [2,3,8,0]

@param (array) num

@return (array)


这就是我目前正在做的事情。只是想知道是否有更有效的方法。


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]));


一只甜甜圈
浏览 191回答 2
2回答

FFIVE

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

叮当猫咪

有点晚了,但这是一个递归版本,如果参数是[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]))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript