请解释一下它是如何工作的。我无法理解代码为什么会成倍增加?
let test1 = [2, 3, 3, 1, 5, 2]
function firstDuplicate(a) {
for (let i of a) {
let posi = Math.abs(i) - 1
if (a[posi] < 0) return posi + 1
a[posi] = a[posi] * -1
}
return -1
}
console.log(firstDuplicate(test1))