Add one to the last array element
It looks like your logic is fine, but I don't find it very readable. I guess it would be fine if you could clearly explain your logic in a tech interview, but here's how I'd write it just to be more clear. 

Use a for loop (that's what they're for!), modify the digits array in place unless they specify you shouldn't, and you can return as soon as you don't have anything left to carry.

var plusOne = function(digits){
    let carry=1;

    for(let i=digits.length-1; i&gt;=0; i--){
        let digitSum = carry + digits[i];
        if(digitSum &gt;= 10){
            digits[i] = digitSum%10;
        }
        else{
            digits[i] = digitSum;
            return digits;
        }
    }

    if(carry == 1){
        digits.unshift(1);
    }
    return digits;
}