Skip to main content
added 26 characters in body; added 1 characters in body; added 29 characters in body
Source Link
meder omuraliev
  • 185.6k
  • 76
  • 395
  • 442

New solution ( which uses Array.prototype.indexOf and Array.prototype.concat ):

Array.prototype.uniqueMerge = function( a ) {
    for ( var nonDuplicates = [], i = 0, l = a.length; i<l; i++++i ) {
        if ( this.indexOf( a[i] ) ===== -1 ) {
            nonDuplicates.push( a[i] );
        }
    }
    return this.concat( nonDuplicates )
};

Usage:

>>> ['Vijendra', 'Singh'].uniqueMerge(['Singh', 'Shakya'])
["Vijendra", "Singh", "Shakya"]

Array.prototype.indexOf ( for internet explorer ):

Array.prototype.indexOf = Array.prototype.indexOf || function(elt)
  {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from): Math.floor(from); 
    if (from < 0)from += len;

    for (; from < len; from++)
    {
      if (from in this && this[from] === elt)return from;
    }
    return -1;
  };

New solution ( which uses Array.prototype.indexOf ):

Array.prototype.uniqueMerge = function( a ) {
    for ( var nonDuplicates = [], i = 0, l = a.length; i<l; i++ ) {
        if ( this.indexOf( a[i] ) == -1 ) {
            nonDuplicates.push( a[i] );
        }
    }
    return this.concat( nonDuplicates )
};

Usage:

>>> ['Vijendra', 'Singh'].uniqueMerge(['Singh', 'Shakya'])
["Vijendra", "Singh", "Shakya"]

Array.prototype.indexOf:

Array.prototype.indexOf = Array.prototype.indexOf || function(elt)
  {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from): Math.floor(from); 
    if (from < 0)from += len;

    for (; from < len; from++)
    {
      if (from in this && this[from] === elt)return from;
    }
    return -1;
  };

New solution ( which uses Array.prototype.indexOf and Array.prototype.concat ):

Array.prototype.uniqueMerge = function( a ) {
    for ( var nonDuplicates = [], i = 0, l = a.length; i<l; ++i ) {
        if ( this.indexOf( a[i] ) === -1 ) {
            nonDuplicates.push( a[i] );
        }
    }
    return this.concat( nonDuplicates )
};

Usage:

>>> ['Vijendra', 'Singh'].uniqueMerge(['Singh', 'Shakya'])
["Vijendra", "Singh", "Shakya"]

Array.prototype.indexOf ( for internet explorer ):

Array.prototype.indexOf = Array.prototype.indexOf || function(elt)
  {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from): Math.floor(from); 
    if (from < 0)from += len;

    for (; from < len; from++)
    {
      if (from in this && this[from] === elt)return from;
    }
    return -1;
  };
added 475 characters in body; added 4 characters in body; deleted 599 characters in body; deleted 23 characters in body
Source Link
meder omuraliev
  • 185.6k
  • 76
  • 395
  • 442

New solution ( which uses Array.prototype.indexOf ):

function mergeArrays() {
   Array.prototype.uniqueMerge if= function( arguments.length < 2a ) throw 'Expected 2 or more arrays'{
    for ( var i = 0, l = arguments.length, anonDuplicates = [], ref; i<l; ++i ) {
        ref = arguments[i];
        for ( var ji = 0, jll = refa.length; j<jl;i<l; ++ji++ ) {
            if ( athis.indexOf( ref[j]a[i] ) == -1 ) {
                anonDuplicates.push( ref[j]a[i] );
        }
    }
     return this.concat( nonDuplicates })
    };

Usage:

>>> ['Vijendra', 'Singh'].uniqueMerge(['Singh', 'Shakya'])
["Vijendra", return"Singh", a
}
"Shakya"]

Array.prototype.indexOf:

Array.prototype.indexOf = Array.prototype.indexOf || function(elt)
  {
    var len = this.length >>> 0; // What does ">>>" do?

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from): Math.floor(from); 
    if (from < 0)from += len;

    for (; from < len; from++)
    {
      if (from in this && this[from] === elt)return from;
    }
    return -1;
  };

var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];

mergeArrays( array1, array2, ['bar'] )

Output:

["Vijendra", "Singh", "Shakya", "bar"]

function mergeArrays() {
    if ( arguments.length < 2 ) throw 'Expected 2 or more arrays'
    for ( var i = 0, l = arguments.length, a = [], ref; i<l; ++i ) {
        ref = arguments[i];
        for ( var j = 0, jl = ref.length; j<jl; ++j ) {
            if ( a.indexOf( ref[j] ) == -1 ) {
                a.push( ref[j] );
            }
        }
    }
    return a
}

Array.prototype.indexOf = Array.prototype.indexOf || function(elt)
  {
    var len = this.length >>> 0; // What does ">>>" do?

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from): Math.floor(from); 
    if (from < 0)from += len;

    for (; from < len; from++)
    {
      if (from in this && this[from] === elt)return from;
    }
    return -1;
  };

var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];

mergeArrays( array1, array2, ['bar'] )

Output:

["Vijendra", "Singh", "Shakya", "bar"]

New solution ( which uses Array.prototype.indexOf ):

Array.prototype.uniqueMerge = function( a ) {
    for ( var nonDuplicates = [], i = 0, l = a.length; i<l; i++ ) {
        if ( this.indexOf( a[i] ) == -1 ) {
            nonDuplicates.push( a[i] );
        }
    }
    return this.concat( nonDuplicates )
};

Usage:

>>> ['Vijendra', 'Singh'].uniqueMerge(['Singh', 'Shakya'])
["Vijendra", "Singh", "Shakya"]

Array.prototype.indexOf:

Array.prototype.indexOf = Array.prototype.indexOf || function(elt)
  {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from): Math.floor(from); 
    if (from < 0)from += len;

    for (; from < len; from++)
    {
      if (from in this && this[from] === elt)return from;
    }
    return -1;
  };
added 234 characters in body; deleted 2 characters in body
Source Link
meder omuraliev
  • 185.6k
  • 76
  • 395
  • 442
function mergeArrays() {
    if ( arguments.length < 2 ) throw 'Expected 2 or more arrays'
    for ( var i = 0, l = arguments.length, a = [], ref; i<l; ++i ) {
        ref = arguments[i];
        for ( var j = 0, jl = ref.length; j<jl; ++j ) {
            if ( !inArraya.indexOf( ref[j], a ) == -1 ) {
                a.push( ref[j] );
            }
        }
    }
    return a
}

functionArray.prototype.indexOf inArray(= needle,Array.prototype.indexOf haystack|| function(elt) {
  {
  for ( var ilen = haystackthis.length;length i--;>>> 0; // What does ">>>" do?

    var from = Number(arguments[1]) {|| 0;
    from = (from < if0) ? Math.ceil(from): needleMath.floor(from); === 
 haystack[i]   if (from < 0)from {+= len;

    for (; from < len; from++)
   return true;{
      if (from }in this && this[from] === elt)return from;
    }
    return false;-1;
  };

var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];

mergeArrays( array1, array2, ['bar'] )

Output:

["Vijendra", "Singh", "Shakya", "bar"]

function mergeArrays() {
    if ( arguments.length < 2 ) throw 'Expected 2 or more arrays'
    for ( var i = 0, l = arguments.length, a = [], ref; i<l; ++i ) {
        ref = arguments[i];
        for ( var j = 0, jl = ref.length; j<jl; ++j ) {
            if ( !inArray( ref[j], a ) ) {
                a.push( ref[j] );
            }
        }
    }
    return a
}

function inArray( needle, haystack ) {
    for ( var i = haystack.length; i--; ) {
        if ( needle === haystack[i] ) {
            return true;
        }
    }
    return false;
}

var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];

mergeArrays( array1, array2, ['bar'] )

Output:

["Vijendra", "Singh", "Shakya", "bar"]

function mergeArrays() {
    if ( arguments.length < 2 ) throw 'Expected 2 or more arrays'
    for ( var i = 0, l = arguments.length, a = [], ref; i<l; ++i ) {
        ref = arguments[i];
        for ( var j = 0, jl = ref.length; j<jl; ++j ) {
            if ( a.indexOf( ref[j] ) == -1 ) {
                a.push( ref[j] );
            }
        }
    }
    return a
}

Array.prototype.indexOf = Array.prototype.indexOf || function(elt)
  {
    var len = this.length >>> 0; // What does ">>>" do?

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from): Math.floor(from);  
    if (from < 0)from += len;

    for (; from < len; from++)
    {
      if (from in this && this[from] === elt)return from;
    }
    return -1;
  };

var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];

mergeArrays( array1, array2, ['bar'] )

Output:

["Vijendra", "Singh", "Shakya", "bar"]

Source Link
meder omuraliev
  • 185.6k
  • 76
  • 395
  • 442
Loading