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

ลบรายการที่ซ้ำกันออกจากอาร์เรย์ของวัตถุ JavaScript


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

มาเขียนโค้ดสำหรับสิ่งนี้กัน −

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

ตัวอย่าง

const arr = [
   {
      "timestamp": 564328370007,
      "message": "It will rain today"
   },
   {
      "timestamp": 164328302520,
      "message": "will it rain today"
   },
   {
      "timestamp": 564328370007,
      "message": "It will rain today"
   },
   {
      "timestamp": 564328370007,
      "message": "It will rain today"
   }
   ];
   const map = {};
   const newArray = [];
   arr.forEach(el => {
      if(!map[JSON.stringify(el)]){
         map[JSON.stringify(el)] = true;
         newArray.push(el);
   }
});
console.log(newArray);

ผลลัพธ์

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

[
   { timestamp: 564328370007, message: 'It will rain today' },
   { timestamp: 164328302520, message: 'will it rain today' }
]