Detecting unique arrays in Javascript
Using a single loop and caching seen values in an object literal will end up as Linear time complexity O(n)
by Farzad YZ
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.min.js"></script>
JavaScript
console.clear();
function isUnique(arr) {
const seenValues = {};
for (let i = 0; i < arr.length; i++) {
if (seenValues[arr[i]]) {
return false;
}
else {
seenValues[arr[i]] = true;
}
}
return true;
}
let smallDuplicate = [1, 4, 6, 10, 4];
let largeDuplicate = _.range(3500).concat(5).concat(_.range(10000, 3510));
let smallUnique = [1, 4, 5, 10, 52];
let largeUnique = _.range(10000);
console.log(isUnique(smallDuplicate))
console.log(isUnique(largeDuplicate))
console.log(isUnique(smallUnique))
console.log(isUnique(largeUnique))