3

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

0

5 Answers 5

3

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.

2

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;
            });
        }
1
arrayWithNoDuplicates = new_array.filter(function(element, position) {
    return myArray.indexOf(element) == position;
})
0
  fxnUniqOptns = function (array) {
    var oOptns = [];
    $.each(array, function (i, val) {
        if ($.inArray(val, oOptns) == -1)
            oOptns.push(val);
    });
    oOptns = oOptns.sort();
    return oOptns;
}
0

give array.splice(i, 1) after the if condition,this will remove the current element,so that duplicates will be removed.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.