Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cộng hai chuỗi số mà không dùng phương thức chuyển đổi trong JavaScript

Chúng ta cần viết hàm JavaScript nhận vào hai chuỗi số. Hàm phải cộng các số trong chuỗi mà không chuyển chúng thành kiểu số hoặc sử dụng bất kỳ phương thức chuyển đổi nào của thư viện.

Ví dụ:

Nếu chuỗi đầu vào là:

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

Thì kết quả đầu ra sẽ là:

const output = '579';

Ví dụ

Mã thực hiện:

const str1 = '123'; const str2 = '456'; 
const addStrings = (num1, num2) => { 
  // Đảm bảo num1 không ngắn hơn 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));

Kết quả

Kết quả in ra console:

579