Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธีกรองอาร์เรย์ซ้ำในอาร์เรย์ของอาร์เรย์ใน JavaScript

สมมติเรามีอาร์เรย์ของอาร์เรย์แบบนี้:

const arr = [ [ "Serta", "Black Friday" ], [ "Serta", "Black Friday" ], [ "Simmons", "Black Friday" ], [ "Simmons", "Black Friday" ], [ "Simmons", "Black Friday" ], [ "Simmons", "Black Friday" ] ];

เราต้องเขียนฟังก์ชันที่รับอาร์เรย์แบบนี้ และคืนค่าอาร์เรย์ใหม่ที่มี subarray ที่ไม่ซ้ำกันทั้งหมดจากอาร์เรย์ต้นฉบับ

โค้ดสำหรับนี้:

const arr = [ [ "Serta", "Black Friday" ], [ "Serta", "Black Friday" ], [ "Simmons", "Black Friday" ], [ "Simmons", "Black Friday" ], [ "Simmons", "Black Friday" ], [ "Simmons", "Black Friday" ] ]; const filterCommon = arr => { const map = Object.create(null); let res = []; res = arr.filter(el => { const str = JSON.stringify(el); const bool = !map[str]; map[str] = true; return bool; }); return res; }; console.log(filterCommon(arr));

ผลลัพธ์

ผลลัพธ์ในคอนโซล:

[ [ 'Serta', 'Black Friday' ], [ 'Simmons', 'Black Friday' ] ]