3

可能重复:
从 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 中输入什么,所以我可以删除双打

4

5 回答 5

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哈希中的一个键,我只需过滤它。

于 2012-12-19T09:29:35.993 回答
2

像这样使用 Array 的原型

Array.prototype.removeDups = function(){
            var local_array = this;
            return local_array.filter(function(elem, pos) {
                return local_array.indexOf(elem) == pos;
            });
        }
于 2012-12-19T09:25:41.720 回答
1
arrayWithNoDuplicates = new_array.filter(function(element, position) {
    return myArray.indexOf(element) == position;
})
于 2012-12-19T09:25:29.467 回答
0
  fxnUniqOptns = function (array) {
    var oOptns = [];
    $.each(array, function (i, val) {
        if ($.inArray(val, oOptns) == -1)
            oOptns.push(val);
    });
    oOptns = oOptns.sort();
    return oOptns;
}
于 2012-12-19T09:28:25.903 回答
0

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

于 2012-12-19T09:42:14.473 回答