โดยโจทย์ของเราวันนี้คือ
ให้อาร์เรย์ [“a”, “a”, “ab”, “ab”, “abc”] มาหลังจากนั้นให้เราทำการ return อาร์เรย์ชุดใหม่กลับไป โดยจะต้องไม่มีค่าซ้ำกัน ผลลัพทธ์ คือ [“a”, “ab”, “abc”]
ง่ายสุดเลยคือการใช้ Set เข้ามาช่วย
function removeDuplicateStrings(inputArray){
return [...new Set(inputArray)]
}
อธิบายโค๊ด
Set เป็น collection ชนิดหนึ่งที่เก็บค่าที่ไม่ซ้ำกัน ถ้าหากมีตัวซ้ำจะเก็บแค่ตัวเดียวไว้
จากโค๊ดเรารับค่าอาร์เรย์ที่มีค่าซ้ำกัน จากนั้นเราทำการสร้าง Set จาก Array โดยใช้คำสั่ง
new Set(อาร์เรย์) // รับค่า Array หรือ iterable อื่นๆ เป็น parameter
ในโจทย์บอกว่าให้เรา return ค่ากลับไปเป็นอาร์เรย์ชุดใหม่ ดังนั้น เราจะ return ค่าหลังจาก new Set ตรงๆ ไม่ได้ เพราะจะเป็นการ return object(Set ถือเป็นออบเจคชนิดหนึ่งใน JavaScript) เราจึงทำการสร้างอาร์เรย์จาก Set ด้วยคำสั่ง
[...Set] // ... คือ spread syntax ที่จะทำการคืนค่า element ทุกๆ ตัว
// หลังจากนั้นก็ทำให้เป็น array ซะด้วยการครอบ [] เข้าไปก่อน return
อ่านเพิ่มเติมเรื่อง Set ใน JavaScript ได้ตามลิงค์ด้านล่างครับ