เราจำเป็นต้องเขียนฟังก์ชันที่รับอาร์เรย์และส่งกลับอาร์เรย์ใหม่ที่ลบค่าที่ซ้ำกันทั้งหมดออกจากอาร์เรย์ ค่าที่ปรากฏมากกว่าหนึ่งครั้งในอาร์เรย์เดิมไม่ควรปรากฏเพียงครั้งเดียวในอาร์เรย์ใหม่
ตัวอย่างเช่น หากอินพุตคือ −
const arr = [763,55,43,22,32,43,763,43];
ผลลัพธ์ควรเป็น −
const output = [55, 22, 32];
เราจะใช้สองวิธีต่อไปนี้ -
- Array.prototype.indexOf() -
ส่งคืนดัชนีของสตริงที่ค้นหาครั้งแรก หากมี มิฉะนั้น -1
- Array.prototype.lastIndexOf()
ส่งคืนดัชนีของสตริงที่ค้นหาล่าสุด หากมี มิฉะนั้น -1
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [763,55,43,22,32,43,763,43]; const deleteDuplicate = (arr) => { const output = arr.filter((item, index, array) => { return array.indexOf(item) === array.lastIndexOf(item); }); return output; }; console.log(deleteDuplicate(arr));
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ในคอนโซล -
[ 55, 22, 32 ]