18. 手撕代码,大数相加,写了23分钟,写得有点慢,呜呜呜,毕竟第一次写这个题 ~~~ const fun = function (str1, str2) { const length1 = str1.length const length2 = str2.length if (length1 < length2) { let temp = '' for (let i = 0; i < length2 - length1; i++) { temp += '0' } str1 = temp + str1 } else { let temp = '' for (let i = 0; i < length1 - length2; i++) { temp += '0' } str2 = temp + str2 } const result = [] let jin = 0 for (let i = 0; i < str1.length; i++) { //每次拿到最后一位 const temp1 = str1[str1.length - 1 - i] const temp2 = str2[str1.length - 1 - i] const wei = Number(temp1) + Number(temp2) + jin if (wei >= 10) { result.push(wei - 10) jin = Math.floor(wei / 10) } else { result.push(wei) jin = 0 } } //可能有进位 if (jin !== 0) result.push(jin) console.log(Number(result.reverse().join(""))); } fun('9999', '9999') ~~~ 运行结果,没问题,面试官还战术夸了一下头脑清晰....