[JavaScript] ลบข้อมูลซ้ำใน array

W.Songsak
1 min readJan 2, 2020

โดยโจทย์ของเราวันนี้คือ

ให้อาร์เรย์ [“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 ได้ตามลิงค์ด้านล่างครับ

--

--

W.Songsak

Software Engineer 👩‍💻 Doing: React, React Native & NextJS also Flutter(Side projects) 💅 Todo: UI/UX