เราจำเป็นต้องเขียนฟังก์ชันที่รับอาร์เรย์และส่งกลับอาร์เรย์ใหม่ที่ลบค่าที่ซ้ำกันทั้งหมดออกจากอาร์เรย์ ค่าที่ปรากฏมากกว่าหนึ่งครั้งในอาร์เรย์เดิมไม่ควรปรากฏเพียงครั้งเดียวในอาร์เรย์ใหม่
ตัวอย่างเช่น หากอินพุตคือ −
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 ]