看到这题我第一时间想到的是把数组转为数字+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]