เรามีสองอาร์เรย์ของลิเทอรัลที่มีค่าร่วมกันบ้าง หน้าที่ของเราคือเขียนฟังก์ชันที่คืนค่าอาร์เรย์พร้อมองค์ประกอบทั้งหมดจากทั้งสองอาร์เรย์ที่ไม่ใช่ค่าร่วม
ตัวอย่างเช่น:
// หากสองอาร์เรย์คือ: const first = ['cat', 'dog', 'mouse']; const second = ['zebra', 'tiger', 'dog', 'mouse']; // ผลลัพธ์ควรเป็น: const output = ['cat', 'zebra', 'tiger'] // เพราะสามตัวนี้คือองค์ประกอบเดียวที่ไม่ร่วมกันในทั้งสองอาร์เรย์
มาเขียนโค้ดสำหรับนี้ เราจะ spread สองอาร์เรย์และ filter อาร์เรย์ที่ได้เพื่อให้ได้อาร์เรย์ที่ไม่มีค่าร่วมกันแบบนี้:
ตัวอย่างโค้ด
const first = ['cat', 'dog', 'mouse'];
const second = ['zebra', 'tiger', 'dog', 'mouse'];
const removeCommon = (first, second) => {
const spreaded = [...first, ...second];
return spreaded.filter(el => {
return !(first.includes(el) && second.includes(el));
})
};
console.log(removeCommon(first, second));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
['cat', 'zebra', 'tiger']