Nodejs Utililty Methods Array Unique

List of utility methods to do Array Unique

Description

The list of methods to do Array Unique are organized into topic(s).

Method

unique(mutate)
Array.prototype.unique = function (mutate) {
  var unique = this.reduce(function (accum, current) {
    if (accum.indexOf(current) < 0) {
      accum.push(current);
    return accum;
  }, []);
  if (mutate) {
    this.length = 0;
...
unique(str)
Array.prototype.unique = function(str){
  const seen = new Map()
  return this.filter((a) => {
    return !seen.has(a['name']) && seen.set(a['name'], 1)
  })
unique1()
Array.prototype.unique1 = function(){
  var res = [this[0]];
  for(var i = 1; i < this.length; i++){
    var repeat = false;
    for(var j = 0; j < res.length; j++){
      if(this[i] == res[j]){
        repeat = true;
        break;
    if(!repeat){
      res.push(this[i]);
  return res;
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
console.log(arr.unique1());
unique1()
Array.prototype.unique1 = function () {
  var a = [],
    o = {},
    n = this.length;
    for (var i=0; i<n; ++i) {
      o[this[i]] = this[i];
    for (var i in o) {
      a.push(o[i]);
...
unique2()
Array.prototype.unique2 = function(){
 this.sort(); 
 var res = [this[0]];
 for(var i = 1; i < this.length; i++){
  if(this[i] !== res[res.length - 1]){
   res.push(this[i]);
 return res;
...
unique2()
Array.prototype.unique2=function () {
    var n={};
    var tmp=[];
    for(var i=0;i<this.length;i++){
        if(!n[this[i]]){
            n[this[i]]=true;
            tmp.push(this[i]);
    return tmp;
unique2()
Array.prototype.unique2 = function () {
  var a = [],
    n = this.length;
    for (var i=0; i<n; ++i) {
      for (var j=i+1; j<n; ++j) {
        if(this[i]===this[j]) j = ++i;
      a.push(this[i]);
  return a;
};
unique2()
Array.prototype.unique2 = function () {
  var result = [];
  for (var i = 0; i < this.length; i++) {
    if (result.indexOf(this[i]) == -1) {
      result.push(this[i]);
  return result;
unique2(getKey = val => val)
Array.prototype.unique2 = function (getKey = val => val) {
  const n = {};
  const r = [];
  for (let i = 0; i < this.length; i += 1) {
    const key = getKey(this[i]);
    if (!n[key]) {
      n[key] = true;
      r.push(this[i]);
  return r;
};
unique3()
Array.prototype.unique3 = function () {
  return this.filter(function (s, i, a) {
    return i===a.lastIndexOf(s);
  })
};