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 に何を入力すればよいかわからないので、double を削除できます

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 に答える