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

การผสานและแก้ไขอาร์เรย์ใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลขสองอาร์เรย์ arr1 andarr2 เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง

ฟังก์ชันของเราควรรวมองค์ประกอบของอาร์เรย์ทั้งสองนี้เข้าในอาร์เรย์ใหม่ และหากเมื่อผสานหรือก่อนที่จะรวมมีรายการที่ซ้ำกัน เราควรลบรายการที่ซ้ำกันส่วนเกินเพื่อให้มีเพียงสำเนาเดียวของแต่ละองค์ประกอบที่มีอยู่ในอาร์เรย์ที่ผสาน

ลำดับที่นี่ไม่สำคัญแต่ความถี่ขององค์ประกอบ (ซึ่งควรเป็น 1 สำหรับแต่ละองค์ประกอบ) มีความสำคัญ

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −

onst arr1 = [6, 5, 2, 1, 8];
const arr2 = [3, 4, 6, 8, 9];

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

const output = [6, 5, 2, 1, 8, 3, 4, 9];

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr1 = [6, 5, 2, 1, 8];
const arr2 = [3, 4, 6, 8, 9];
const mergeAndRectify = (arr1 = [], arr2) => {
   const { length: len1 } = arr1;
   const { length: len2 } = arr2;
   const res = [];
   let curr = 0;
   for(let i = 0; i < len1+len2; i++){
      if(i >= len1){
         curr = i - len1;
         if(!res.includes(arr1[curr])){
            res.push(arr1[curr]);
         };
      }else{
         curr = i;
         if(!res.includes(arr2[curr])){
            res.push(arr2[curr]);
         };
      };
   };
   return res;
};
console.log(mergeAndRectify(arr1, arr2));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

[ 3, 4, 6, 8, 9, 5, 2, 1 ]