Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove duplicates from an array using javascript [duplicate]

Possible Duplicate:
Remove duplicates from an array of objects in javascript

I'm trying to remove any duplicates in an array. For example if I have 112233 I want to return only 123.

My code:

function array_unique(array) {
    var array_length = array.length;
    var new_array = [];
    for (var i = 0; i < array_length; i++) {
        if (array[i] == array[i + 1]) {

        }
        new_array.push(array[i]);
    }
    return new_array;
}

I don't know what to type in the if so I can remove the doubles

like image 707
user1915308 Avatar asked Apr 20 '26 16:04

user1915308


2 Answers

Here you can remove the duplicates with complexity O(n).

var elems = {},
    arr = [1,2,1,1,2,3,3,3,3,4];
arr = arr.filter(function (e) {
    if (elems[e] === undefined) {
        elems[e] = true;
        return true;
    }
    return false;
});

I use the elems hash (object) to remember all already existing elements. If the current element is a key in the elems hash I just filter it.

like image 136
Minko Gechev Avatar answered Apr 23 '26 07:04

Minko Gechev


Use prototype for Array like this

Array.prototype.removeDups = function(){
            var local_array = this;
            return local_array.filter(function(elem, pos) {
                return local_array.indexOf(elem) == pos;
            });
        }
like image 32
Ranganadh Paramkusam Avatar answered Apr 23 '26 05:04

Ranganadh Paramkusam