ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript配列から重複を削除する方法

JavaScript配列から重複を削除する方法

青灯夜游
リリース: 2023-01-07 11:47:32
オリジナル
2296 人が閲覧しました

方法: 1. "[...new Set(arr)]" ステートメントを使用します。 2. "Array.from(new Set(arr))" ステートメントを使用します。 3. フィルターとIndexOf関数; 4. double forループを使って値が重複していないか確認し、重複がある場合はpush()を使って削除します。

JavaScript配列から重複を削除する方法

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

方法 1: […新しい Set(arr)]

const arr = [1, 2, 3, 2, 3];
[...new Set(arr)]; // [1, 2, 3]
ログイン後にコピー

方法 2: Array.from(new Set(arr))

const arr = [1, 2, 3, 2, 3];
Array.from(new Set(arr)); // [1, 2, 3]
ログイン後にコピー

Set 内の要素は元の値であってもオブジェクト参照であっても一意であるため、配列を Set オブジェクトに変換することで重複排除を実現できます。

Array.from メソッドSet オブジェクトを配列に変換できます。

方法 3: フィルター IndexOf

function unique(arr) {
  return arr.filter(function(item, index, arr) {
    //当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素
    return arr.indexOf(item, 0) === index;
  });
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
//[1, "true", true, 15, false, undefined, null, "NaN", 0, "a", {…}, {…}]
ログイン後にコピー
を使用する

方法 4: Double for ループ

外部で理解する最も簡単な方法レイヤー ループは要素を走査し、内側のループは重複があるかどうかをチェックします。

重複する値がある場合は、push() または splice() を使用できます

function distinct(a, b) {
    let arr = a.concat(b);
    for (let i=0, len=arr.length; i<len; i++) {
        for (let j=i+1; j<len; j++) {
            if (arr[i] == arr[j]) {
                arr.splice(j, 1);
                // splice 会改变数组长度,所以要将数组长度 len 和下标 j 减一
                len--;
                j--;
            }
        }
    }
    return arr
}
ログイン後にコピー

ただし、このメソッドでは時間がかかりますメモリの増加 より高いですが、効率も最も低くなります

JavaScript配列から重複を削除する方法

方法 5: for...of includes()

double のアップグレードfor ループのバージョンでは、for ループを外側の層の for...of ステートメントに置き換え、内側のループを include() に変更します。

最初に空の配列を作成し、includes() が false を返すと、要素を空の配列にプッシュします

同様に、includes() の代わりにindexOf() を使用することもできます

function distinct(a, b) {
    let arr = a.concat(b)
    let result = []
    for (let i of arr) {
        !result.includes(i) && result.push(i)
    }
    return result
}
ログイン後にコピー

JavaScript配列から重複を削除する方法

[推奨学習: JavaScript 上級チュートリアル ]

以上がJavaScript配列から重複を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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