ПРОБЛЕМА
Я не уверен, что я делаю здесь не так.Я выполняю задачу кодирования на CodeFights , используя ванильный JavaScript для поиска и возврата первого повторяющегося элемента в массиве.Мой код работает для 2 тестовых массивов (a
и c
), но не для случая, когда нет повторяющихся элементов .
МОЙ КОД
console.clear();
var a = [2, 1, 3, 5, 3, 2];
var b = [2, 4, 3, 5, 1];
var c = ["apple", "orange", "grape", "orange", "grape"];
// create an object to store the counts
var counts = {};
function firstDuplicate(arr) {
// loop through passed array of numbers
for (var i=0; i<a.length; i++) {
var num = arr[i];
if (counts[num] === undefined) {
counts[num] = 1;
} else if (counts[num] == 1) {
++counts[num];
return num;
}
}
return -1;
}
console.log(firstDuplicate(a)); // 3
console.log(firstDuplicate(b)); // -1
console.log(firstDuplicate(c)); // orange
МОЙ ВОПРОС
Я знаю, что мой код в основном правильный, так что я пропустил / или я что-то потерял?Как заставить работать «нулевой» случай (когда нет повторяющихся символов).