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

การเพิ่มสองอาร์เรย์ของวัตถุที่มีสมาชิกที่มีอยู่และซ้ำกันของสองอาร์เรย์ JavaScript แทนที่อาร์เรย์ที่ซ้ำกัน


เรามีอาร์เรย์ของอ็อบเจ็กต์ต่อไปนี้ เราจำเป็นต้องรวมพวกมันเป็นหนึ่งเดียวเพื่อลบอ็อบเจ็กต์ที่มีค่าซ้ำซ้อนสำหรับชื่อคุณสมบัติ -

const first = [{
   name: 'Rahul',
   age: 23
}, {
   name: 'Ramesh',
   age: 27
}, {
   name: 'Vikram',
   age: 35
}, {
   name: 'Harsh',
   age: 34
}, {
   name: 'Vijay',
   age: 21
}];
const second = [{
   name: 'Vijay',
   age: 21
}, {
   name: 'Vikky',
   age: 20
}, {
   name: 'Joy',
   age: 26
}, {
   name: 'Vijay',
   age: 21
}, {
   name: 'Harsh',
   age: 34
}, ]

เรากำหนดฟังก์ชัน combineArray นำอาร์เรย์ทั้งสองมารวมกันเป็นอาร์กิวเมนต์แล้วส่งกลับอาร์เรย์ใหม่ -

const combineArray = (first, second) => {
   const combinedArray = [];
   const map = {};
   first.forEach(firstEl => {
      if(!map[firstEl.name]){
         map[firstEl.name] = firstEl;
         combinedArray.push(firstEl);
      }
   });
   second.forEach(secondEl => {
      if(!map[secondEl.name]){
         map[secondEl.name] = secondEl;
         combinedArray.push(secondEl);
      }
   })
   return combinedArray;
}
console.log(combineArray(first, second));

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

นี่คือรหัสที่สมบูรณ์ -

ตัวอย่าง

const first = [{
   name: 'Rahul',
   age: 23
}, {
   name: 'Ramesh',
   age: 27
}, {
   name: 'Vikram',
   age: 35
}, {
   name: 'Harsh',
   age: 34
}, {
   name: 'Vijay',
   age: 21
}];
   const second = [{
      name: 'Vijay',
      age: 21
}, {
   name: 'Vikky',
   age: 20
}, {
   name: 'Joy',
   age: 26
}, {
   name: 'Vijay',
   age: 21
}, {
   name: 'Harsh',
   age: 34
}, ]
const combineArray = (first, second) => {
   const combinedArray = [];
   const map = {};
   first.forEach(firstEl => {
      if(!map[firstEl.name]){
         map[firstEl.name] = firstEl;
         combinedArray.push(firstEl);
      }
   });
   second.forEach(secondEl => {
      if(!map[secondEl.name]){
         map[secondEl.name] = secondEl;
         combinedArray.push(secondEl);
      }
   })
   return combinedArray;
}
console.log(combineArray(first, second));

ผลลัพธ์

เอาต์พุตคอนโซลจะเป็น −

[
   { name: 'Rahul', age: 23 },{ name: 'Ramesh', age: 27 },{ name: 'Vikram', age: 35 },
   { name: 'Harsh', age: 34 },{ name: 'Vijay', age: 21 },{ name: 'Vikky', age: 20 },
   { name: 'Joy', age: 26 }
]