Computer >> Máy Tính >  >> Lập trình >> Javascript

Thêm chuỗi số mà không sử dụng các phương pháp thư viện chuyển đổi trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript có hai chuỗi số. Hàm sẽ thêm các số vào chuỗi mà không thực sự chuyển đổi chúng thành số hoặc sử dụng bất kỳ phương pháp thư viện chuyển đổi nào khác.

Ví dụ -

Nếu các chuỗi đầu vào là -

const str1 = '123';
const str2 = '456';

Sau đó, đầu ra phải là -

const output = '579';

Ví dụ

Mã cho điều này sẽ là -

const str1 = '123';
const str2 = '456';
const addStrings = (num1, num2) => {
   // Let's make sure that num1 is not shorter than num2
   if (num1.length < num2.length) {
      let tmp = num2;
      num2 = num1;
      num1 = tmp;
   }
   let n1 = num1.length;
   let n2 = num2.length;
   let arr = num1.split('');
   let carry = 0;
   let total;
   for (let i = n1 − 1, j = n2 − 1; i >= 0; i−−, j−−) {
      let term2 = carry + (j >= 0 ? parseInt(num2[j]) : 0);
      if (term2) {
         total = parseInt(num1[i]) + term2;
         if (total > 9) {
            arr[i] = (total − 10).toString();
            carry = 1;
         } else {
            arr[i] = total.toString();
            carry = 0;
            if (j < 0) {
               break;
            }
         }
      }
   }
   return (total > 9 ? '1' + arr.join('') : arr.join(''));
};
console.log(addStrings(str1, str2));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

579