JavaScript で配列の重複排除を実装するにはどうすればよいですか? jsの配列から重複を削除する3つの方法(コード例)

青灯夜游
リリース: 2018-10-15 13:40:33
オリジナル
3897 人が閲覧しました

JavaScript で配列の重複排除を実装するにはどうすればよいですか?この記事では、js で配列を重複排除する 3 つの一般的な方法を紹介します。困っている友人は参考にしていただければ幸いです。

以下では、簡単なコード例 を通じて、js での配列重複排除の 3 つの一般的な方法を紹介します。

最初の方法: for ループ (2 回) 新しい配列

アイデア:

1.結果を格納する新しい配列

2。for ループで毎回元の配列から要素を 1 つ取り出し、この要素を使用してループし、結果の配列

3 と比較します。結果の配列に element 要素が含まれていない場合は、それを結果の配列に格納します

//方法一
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
function removeDuplicatedItem(arr) {
   for(var i = 0; i < arr.length-1; i++){
       for(var j = i+1; j < arr.length; j++){
           if(arr[i]==arr[j]){
              arr.splice(j,1);//console.log(arr[j]);
              j--;
           }
       }
   }
   return arr;
}

arr2 = removeDuplicatedItem(arr);
console.log(arr);
console.log(arr2);
ログイン後にコピー

最初のメソッドは、arr = [1,23,1,1,1,3, の場合、基本的にニーズを満たすことができます。 23,5,6, 7,9,9,8,5] のような単純な配列の場合、型比較を使用するだけで済みますが、配列が非常に長い場合はどうなるでしょうか。この方法で配列を走査すると、配列の長さは n になり、時間計算量は n*n になります。明らかに、最初の方法のパフォーマンスを改善する必要があります。次に 2 番目の方法です。配列の並べ替えを使用して、並べ替えプロセス中に重複する値を削除します。

2 番目の方法: for ループ (1 回) sort() は新しい配列をソートします

元の配列の長さは変更されませんが、文字列による並べ替え 新しい配列を使用して、要素が新しい配列に存在するかどうかを判断し、存在しない場合は、その要素を新しい配列に追加します。

//方法二
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
function removeRepEle(ar) {
    var ret = [],
        end;//临时变量用于对比重复元素
    ar.sort();//将数重新组排序
    end = ar[0];
    ret.push(ar[0]);
    for (var i = 1; i < ar.length; i++) {
        if (ar[i] != end) {//当前元素如果和临时元素不等则将此元素添加到新数组中
            ret.push(ar[i]);
            end = ar[i];
        }
    }
    return ret;
}

arr2 = removeRepEle(arr);
console.log(arr);//[ 1, 1, 1, 1, 23, 23, 3, 5, 5, 6, 7, 8, 9, 9 ]
console.log(arr2);//[ 1, 23, 3, 5, 6, 7, 8, 9 ]
ログイン後にコピー

2 番目の方法には、特定の制限があります。配列が最初にソートされてから重複が削除されるため、最終的に返される結果は、JS 配列の重複排除とソートの結果になります。配列の順序を変更せずに重複を削除する必要がある場合、この方法はお勧めできません。

3 番目の方法 (推奨): for ループ (1 回) new array new object

空のオブジェクトを使用して、新しい配列 格納された要素

//方法三 
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
var o={};
var new_arr=[];
for(var i=0;i<arr.length;i++){
    var k=arr[i];
    if(!o[k]){
        o[k]=true;
        new_arr.push(k);
    }
}
console.log(new_arr);
ログイン後にコピー

概要: 上記がこの記事の全内容です。皆さんの学習に役立つことを願っています。関連チュートリアルの詳細については、JavaScript ビデオ チュートリアル jQuery ビデオ チュートリアル bootstrap チュートリアル をご覧ください。

以上がJavaScript で配列の重複排除を実装するにはどうすればよいですか? jsの配列から重複を削除する3つの方法(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート