首页 > 解决方案 > 使用 javascript 查找第一个重复出现的字符

问题描述

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

输出返回 2

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

输出返回 1

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

输出返回未定义

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

有什么改进的方法可以让 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

标签: javascriptarrays

解决方案


您可以使用 aSet并使用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


推荐阅读