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

asked Dec 19, 2012 at 9:22
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.

answered Dec 19, 2012 at 9:29
Sign up to request clarification or add additional context in comments.

Comments

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;
 });
 }
answered Dec 19, 2012 at 9:25

Comments

1
arrayWithNoDuplicates = new_array.filter(function(element, position) {
 return myArray.indexOf(element) == position;
})
answered Dec 19, 2012 at 9:25

Comments

0
 fxnUniqOptns = function (array) {
 var oOptns = [];
 $.each(array, function (i, val) {
 if ($.inArray(val, oOptns) == -1)
 oOptns.push(val);
 });
 oOptns = oOptns.sort();
 return oOptns;
}
answered Dec 19, 2012 at 9:28

Comments

0

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

answered Dec 19, 2012 at 9:42

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.