字符串相乘及 js中 +a的作用
力扣 43. 字符串相乘
var multiply = function (num1, num2) {
let len1 = num1.length;
let len2 = num2.length;
// num1 和 num2 乘积的长度为 m+n 或者 m+n-1
let ans = new Array(len1 + len2).fill(0);
let add = 0;
let mul = '';
for (let i = len1 - 1; i >= 0; i--) {
add = 0;
for (let j = len2 - 1; j >= 0; j--) {
mul = +num1[i] * +num2[j] + add + ans[i + j + 1];
ans[i + j + 1] = mul % 10;
add = Math.floor(mul / 10);
if (j === 0 && add > 0) {
ans[i + j] += add;
}
}
}
ans = ans.join('');
while (ans[0] === '0') {
ans = ans.slice(1);
}
return ans === '' ? '0' : ans;
};
其中 mul = +num1[i] * +num2[j] + c + ans[i + j + 1]; 中的 +num1[i] 代表的是这个意思:
变量前的+是一元+运算符。您可能熟悉 - 元,例如-x。+x和-x都将x转换为数字,但是-x也会更改其符号。这不是一元+存在的主要目的,但这是一个很好的副作用。
比如:
x = '9'; // '9'
x = +'9'; // 9
x = '9' + '9'; // '99'
x = +'9' + +'9'; // 18