【发布时间】:2017-07-16 16:52:28
【问题描述】:
关于在数组中查找第二次出现的具有最小索引的数字的第一个重复数字的问题。
到目前为止,如果我理解的话,变量 firstDuplicate 是一个函数对象,它使用箭头符号来缩写“var firstDuplicate = function (a){}”等。这是我的问题开始的地方。
1) 创建一个新的集合对象会自动使用传递函数的数组来填充? set 方法如何知道将数组传递给函数并对其进行设置?
2) 现在我在 for 循环中了解到数组中的每个项目都在被遍历并且当前索引是 e,但是在这里我开始从概念上迷失正在发生的事情。在以下位置:
if (r.has(e))
比较到底发生在哪里,即检查该数组中的重复数字是什么,以及确定第二次重复出现的最低索引是多少的比较?
const test1 = [0, 3, 4, 10, 2, 4, 2, 3]
firstDuplicate = a => {
r = new Set()
for (e of a)
if (r.has(e))
return e
else
r.add(e)
return -1
}
console.log(firstDuplicate(test1));
【问题讨论】:
标签: javascript arrays