415.简单字符串相加

/**
 * @param {string} num1
 * @param {string} num2
 * @return {string}
 */
var addStrings = function (num1, num2) {
    let arr1 = num1.split('').map(e => Number(e))
    let arr2 = num2.split('').map(e => Number(e))

    // console.log(arr1, arr2)

    let res = []
    let prefix = 0 // 前一位进1
    while (arr1.length || arr2.length || prefix) {
        // 从个位数开始相加
        let n1 = arr1.pop() || 0
        let n2 = arr2.pop() || 0

        let num = (n1 + n2 + prefix) % 10 // 当前数
        prefix = Math.floor((n1 + n2 + prefix) / 10) // 大于10,就进1
        res.unshift(num)
    }

    return res.join('')
};

var addStrings = function (num1, num2) {
    let i = num1.length - 1
    let j = num2.length - 1

    let res = ''
    let prefix = 0 // 前一位进1
    while (i >= 0 || j >= 0 || prefix) {
        // 从个位数开始相加
        let n1 = Number(num1[i] || 0)
        let n2 = Number(num2[j] || 0)

        let num = (n1 + n2 + prefix) % 10 // 当前数
        prefix = Math.floor((n1 + n2 + prefix) / 10) // 大于10,就进1
        res = `${num}${res}`

        i--
        j--
    }

    return res
};

console.log(addStrings('11', '123'))