เรามีอาร์เรย์สตริง/ตัวเลขลิเทอรัล ที่อาจมีตัวซ้ำ หน้าที่เขียนฟังก์ชันรับอาร์เรย์ คืน index ของตัวซ้ำตัวแรก ถ้าไม่มีตัวซ้ำ คืน -1
เขียนโค้ด เราจะวนลูปด้วย for loop ใช้ Map เก็บตัวอักษรที่แตกต่างเป็น key และ index เป็น value หากระหว่างวนเจอ key ซ้ำ คืน index นั้น มิฉะนั้นจบลูปคืน -1
ตัวอย่าง
const arr = [12,4365,76,43,76,98,5,31,4];
const secondArr = [6,8,9,32,1,76,98,0,65,878,90];
const findRepeatingIndex = (arr) => {
const map = {};
for(let i = 0; i < arr.length; i++){
if(map[arr[i]]){
return map[arr[i]];
}else{
map[arr[i]] = i;
}
}
return -1;
};
console.log(findRepeatingIndex(arr));
console.log(findRepeatingIndex(secondArr));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น
2 -1