使用javascript从数组中删除重复项

时间:2012-12-19 09:22:24

标签: javascript arrays duplicates

  

可能重复:
  Remove duplicates from an array of objects in javascript

我正在尝试删除数组中的任何重复项。例如,如果我有112233,我只想返回123

我的代码:

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;
}

我不知道该怎么输入if if我可以删除双打

5 个答案:

答案 0 :(得分:2)

像这样使用原型进行数组

Array.prototype.removeDups = function(){
            var local_array = this;
            return local_array.filter(function(elem, pos) {
                return local_array.indexOf(elem) == pos;
            });
        }

答案 1 :(得分:2)

在这里,您可以删除复杂度为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;
});

我使用elems哈希(对象)来记住所有已存在的元素。如果当前元素是elems哈希中的键,我只是过滤它。

答案 2 :(得分:1)

arrayWithNoDuplicates = new_array.filter(function(element, position) {
    return myArray.indexOf(element) == position;
})

答案 3 :(得分:0)

  fxnUniqOptns = function (array) {
    var oOptns = [];
    $.each(array, function (i, val) {
        if ($.inArray(val, oOptns) == -1)
            oOptns.push(val);
    });
    oOptns = oOptns.sort();
    return oOptns;
}

答案 4 :(得分:0)

在if条件之后给出array.splice(i,1),这将删除当前元素,以便删除重复项。

相关问题