• 看到这题我第一时间想到的是把数组转为数字+1再转成数组,这样就js的一些现成的方法就搞定了,但仔细想想这样根本学不到什么东西,只是在重复用一些方法而已

    /**
     * @param {number[]} digits
     * @return {number[]}
     */
    var plusOne = function(digits) {
    
        for (let i=digits.length-1; i>=0; i--){
            digits[i]++
            digits[i] = digits[i] % 10
            if (digits[i] !== 0) return digits
        }
    
        let newarr = Array.from(new Array(digits.length+1), x => 0)
    
        newarr[0] = 1
    
        return newarr
        
    };

    最后写成这样了~

    这里用到一个 Array.from() 方法,该方法从一个数组或可迭代对象中复制一个新数组

    console.log(Array.from('foo'));
    // expected output: Array ["f", "o", "o"]
    
    console.log(Array.from([1, 2, 3], x => x + x));
    // expected output: Array [2, 4, 6]