Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

เพิ่มสตริงตัวเลขโดยไม่ใช้วิธีการแปลงไลบรารีใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงตัวเลขสองตัว ฟังก์ชันควรเพิ่มตัวเลขในสตริงโดยไม่ต้องแปลงเป็นตัวเลขจริงๆ หรือใช้วิธีการแปลงไลบรารีอื่นๆ

ตัวอย่างเช่น −

หากสตริงอินพุตเป็น −

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

จากนั้นผลลัพธ์ควรเป็น −

const output = '579';

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

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));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

579