使用JavaScript查找第一个重复出现的字符

Jac*_*cky 1 javascript arrays

输入:array = [2,5,1,2,3,5,1,2,4]

输出返回2

输入:array = [2,1,1,2,3,5,1,2,4]

输出返回1

输入数组= [2,3,4,5]

输出返回未定义

我在repl.it上运行我的代码,它始终返回undefined。

有什么改进的方法可以使不确定的消失?

还有如何在第三输入中返回未定义?

我在JS中尝试的方法:

   
function FirstRecurringCharacter(arr){
for (i = 0; i < arr.length; i++) {
  if (arr.indexOf(arr[i]) !== i) {
    console.log(arr[i]);
    break;
  }
}
};
   
 FirstRecurringCharacter([2,5,1,2,3,5,1,2,4])//should return 2
   
 FirstRecurringCharacter([2,1,1,2,3,5,1,2,4])//should return 1
   
 FirstRecurringCharacter([2,3,4,5])//should rerturn undefined
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 5

You could take a Set and use Array#find.

function find(array) {
    var s = new Set;
    return array.find(v => s.has(v) || !s.add(v));
}

console.log(find([2, 5, 1, 2, 3, 5, 1, 2, 4])); // 2
console.log(find([2, 1, 1, 2, 3, 5, 1, 2, 4])); // 1
console.log(find([2, 3, 4, 5]));                // undefined
Run Code Online (Sandbox Code Playgroud)