This solution is generated by ChatGPT, correctness is not guaranteed. You might also be able to find a solution fromcommunity posts.

AI solution for JavaScript Coding Question on BFE.dev
128. BigDecimal multiplication

Solution using the Grade-school algorithm:

function multiply(a, b) {  const sign = (a[0] === '-' ? b[0] === '-' ? '' : '-' : b[0] === '-' ? '-' : '');  a = a.replace(/^-/, '');  b = b.replace(/^-/, '');  const res = new Array(a.length + b.length).fill(0);  for (let i = a.length - 1; i >= 0; i--) {    const x = +a[i];    let carry = 0;    for (let j = b.length - 1; j >= 0; j--) {      const y = +b[j];      const z = x * y + res[i+j+1] + carry;      res[i+j+1] = z % 10;      carry = Math.floor(z / 10);    }    res[i] += carry;  }  let i = 0;  while (i < res.length && res[i] === 0) i++;  let str = res.slice(i).join('');  return sign + (str === '' ? '0' : str);}

This function will first remove the sign from both inputs, then create a result array with the length of the sum of input lengths. Then it follows the algorithm of multiplication in which it multipies digits of a with digits of b from right to left and adds results to the result array.

Finally, it removes leading zeroes, adds the sign and returns the answer.

Time Complexity: O(n*m)

Space complexity: O(n + m)