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))