目次
ES6: Set
Set を理解する
Set に値を追加する場合、型変換は発生しません (完全に等しい === と同様) が、Set 内では NaN がそれ自体と等しいことに注意してください。他の 2 つのオブジェクトは常に等しくありません。
操作集合
ホームページ ウェブフロントエンド jsチュートリアル ES6のSetデータ構造とは何ですか?

ES6のSetデータ構造とは何ですか?

Sep 09, 2017 pm 01:57 PM
データ構造 とは

ES6: Set

Set を理解する

ES6 はデータ構造 Set を提供します。配列に似ていますが、重複する値はありません。

  • Set 自体はコンストラクターであり、Set データ構造を生成するために使用されます

const s = new Set();
[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for(let i of s ) {    console.log(i); //2 3 4 5 }
ログイン後にコピー
  • Set は初期化するパラメータとして配列 (または配列のようなオブジェクト) を受け入れることができます

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

は次の目的で使用できます配列 重複を削除します[...new Set(array)]

Array.from()[...new Set(array)]

Array.from()
このメソッドは Set 構造を次のように変換できます。配列
    Array.from(new Set(array))

Set に値を追加する場合、型変換は発生しません (完全に等しい === と同様) が、Set 内では NaN がそれ自体と等しいことに注意してください。他の 2 つのオブジェクトは常に等しくありません。

  • let set = new Set();let a = NaN;let b = NaN;
    set.add(a);
    set.add(b);
    set; //{NaN} 只能加入一个,说明Set内部两个NaN是相等的
    ログイン後にコピー

    インスタンスのプロパティとメソッドを設定します

    • プロパティ:

      Set.prototype.constructor:构造函数,默认就是Set函数

    • Set.prototype.size:返回实例的成员总数

  • 操作方法(方法的具体实现见:我对JS集合的简单学习):

    • add(value):添加一个值,返回Set结构本身

    • delete(value):删除某个值,返回布尔值

    • has(value):返回布尔值,表示是否是成员

    • clear()

      🎜🎜🎜Set.prototype.constructor🎜: コンストラクター、デフォルトは Set 関数です 🎜🎜🎜🎜🎜 🎜:戻るインスタンスのメンバーの総数🎜🎜🎜🎜🎜Operation メソッド (メソッドの具体的な実装については、JS コレクションの私の簡単な研究を参照):🎜🎜🎜🎜🎜🎜add(value)🎜: 値を追加し、 Set 構造自体を返します🎜🎜🎜 🎜🎜delete(value)🎜: 値を削除し、ブール値を返します🎜🎜🎜🎜🎜has(value)🎜: メンバーであるかどうかを示すブール値を返します🎜🎜🎜🎜 🎜clear()🎜: すべてのメンバーをクリア、なし 戻り値 🎜
s.add(1).add(2).add(2); //链式写法s.size(); //2s.has(3); //falses.delete(2);
s.has(2); //false
ログイン後にコピー
  • 遍历方法

    • keys():返回键名的遍历器(什么是遍历器?Iterator)

    • values():返回键值的遍历器

    • entries():返回键值对的遍历器

    • forEach():使用回调函数遍历每个成员

这里要注意Set的键名和键值是同一个值,所以key()和values()行为是一致的。

let set = new Set(['red', 'green', 'no']);for(let item of set.keys()) {    console.log(item); //red green no}for(let item of set.values()) {    console.log(item); //red green no}for(let item of set.entries()) {    console.log(item); //['red': 'red'] ['green': 'green'] ['no': 'no']}//对每个成员执行某种操作,参数依次为键值、键名、集合本身new Set([1, 2, 3]).forEach((value, key) => console.log(value * 2)); //2 4 6
ログイン後にコピー

操作集合

let a = new Set([1, 2, 3]);let b = new Set([4, 3, 2]);//并集let union = new Set([...a, ...b]); //{1, 2, 3, 4}//交集let intersect = new Set([...a].filter(x => b.has(x))); //{2, 3}//差集let difference = new Set([...a].filter(x => !b.has(x))); //{1}
ログイン後にコピー

号外:扩展运算符(...)内部使用for...of循环,所以应该知道for of是干嘛的吧

数组的map()filter()可用于Set

let set = new Set([1, 2, 3]);set = new Set([...set].map(x => x * 2)); //set: {2, 4, 6}let set = new Set([1, 2, 3, 4, 5]);set = new Set([...set].filter(x => (x % 2) == 0)); //set {2, 4}
ログイン後にコピー

以上がES6のSetデータ構造とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ccsvchst.exe はどのようなプロセスですか? ccsvchst.exe はどのようなプロセスですか? Feb 19, 2024 pm 11:33 PM

ccsvchst.exe は、Symantec Endpoint Protection (SEP) ソフトウェアの一部である共通プロセス ファイルです。SEP は、有名なネットワーク セキュリティ会社 Symantec によって開発されたエンドポイント保護ソリューションです。ソフトウェアの一部として、ccsvchst.exe は SEP 関連のプロセスの管理と監視を担当します。まず、SymantecEndpointProtection(

Java 関数比較を使用して複雑なデータ構造を比較する Java 関数比較を使用して複雑なデータ構造を比較する Apr 19, 2024 pm 10:24 PM

Java で複雑なデータ構造を使用する場合、Comparator を使用して柔軟な比較メカニズムを提供します。具体的な手順には、コンパレータ クラスの定義、比較ロジックを定義するための比較メソッドの書き換えが含まれます。コンパレータインスタンスを作成します。 Collections.sort メソッドを使用して、コレクションとコンパレータのインスタンスを渡します。

デュアルコアブラウザとは何ですか? デュアルコアブラウザとは何ですか? Feb 20, 2024 am 08:22 AM

デュアルコアブラウザは、2つの異なるブラウザコアを統合したブラウザソフトウェアです。カーネルはブラウザの中核部分であり、Web コンテンツのレンダリング、Web スクリプトやその他の機能の実行を担当します。従来のブラウザは通常、Trident カーネルを使用する IE ブラウザ、WebKit/Blink カーネルを使用する Chrome ブラウザ、Gecko カーネルを使用する Firefox ブラウザなど、単一のカーネルのみを使用します。デュアルコア ブラウザは 2 つの異なるコアを 1 つのブラウザに統合しており、ユーザーは必要に応じてそれらを自由に切り替えることができます。デュアルコアブラウザの登場

Go 言語の参照型についての深い理解 Go 言語の参照型についての深い理解 Feb 21, 2024 pm 11:36 PM

参照型は Go 言語の特別なデータ型であり、その値にはデータそのものが直接格納されるのではなく、格納されたデータのアドレスが格納されます。 Go 言語では、参照型にはスライス、マップ、チャネル、ポインターが含まれます。 Go 言語のメモリ管理とデータ転送方法を理解するには、参照型を深く理解することが重要です。この記事では具体的なコード例を組み合わせて、Go言語における参照型の特徴と使い方を紹介します。 1. スライス スライスは、Go 言語で最も一般的に使用される参照型の 1 つです。

Javaのデータ構造とアルゴリズム: 詳細な説明 Javaのデータ構造とアルゴリズム: 詳細な説明 May 08, 2024 pm 10:12 PM

データ構造とアルゴリズムは Java 開発の基礎です。この記事では、Java の主要なデータ構造 (配列、リンク リスト、ツリーなど) とアルゴリズム (並べ替え、検索、グラフ アルゴリズムなど) について詳しく説明します。これらの構造は、スコアを保存するための配列、買い物リストを管理するためのリンク リスト、再帰を実装するためのスタック、スレッドを同期するためのキュー、高速検索と認証のためのツリーとハッシュ テーブルの使用など、実際の例を通じて説明されています。これらの概念を理解すると、効率的で保守しやすい Java コードを作成できるようになります。

CPU とは何ですか? CPU には何が含まれていますか? CPU とは何ですか? CPU には何が含まれていますか? Feb 22, 2024 pm 05:55 PM

cpuは中央処理装置です。分析 1 中央処理装置 [CPU、Central Processing Unit] は、コンピュータの計算コアおよび制御コアである非常に大規模な集積回路であり、その主な機能はコンピュータ命令を解釈し、コンピュータ ソフトウェア内のデータ情報を処理することです。補足: CPU には何が含まれますか? 1 CPU には、計算的思考コンポーネント、レジスタ コンポーネント、制御コンポーネントなどが含まれます。計算と変換。概要/注意事項 CPU は主にコンピュータの命令を説明し、コンピュータ ソフトウェア内のデータ情報を処理します。

PHP データ構造: AVL ツリーのバランス、効率的で秩序あるデータ構造の維持 PHP データ構造: AVL ツリーのバランス、効率的で秩序あるデータ構造の維持 Jun 03, 2024 am 09:58 AM

AVL ツリーは、高速かつ効率的なデータ操作を保証するバランスのとれた二分探索ツリーです。バランスを達成するために、左回転と右回転の操作を実行し、バランスに反するサブツリーを調整します。 AVL ツリーは高さバランシングを利用して、ツリーの高さがノード数に対して常に小さくなるようにすることで、対数時間計算量 (O(logn)) の検索操作を実現し、大規模なデータ セットでもデータ構造の効率を維持します。

Java コレクション フレームワークの完全分析: データ構造を分析し、効率的なストレージの秘密を明らかにする Java コレクション フレームワークの完全分析: データ構造を分析し、効率的なストレージの秘密を明らかにする Feb 23, 2024 am 10:49 AM

Java コレクション フレームワークの概要 Java コレクション フレームワークは Java プログラミング言語の重要な部分であり、データを保存および管理できる一連のコンテナ クラス ライブラリを提供します。これらのコンテナ クラス ライブラリには、さまざまなシナリオでのデータ ストレージと処理のニーズを満たすために、さまざまなデータ構造があります。コレクション フレームワークの利点は、統一されたインターフェイスが提供され、開発者が異なるコンテナ クラス ライブラリを同じ方法で操作できるため、開発の困難さが軽減されることです。 Java コレクション フレームワークのデータ構造 Java コレクション フレームワークにはさまざまなデータ構造が含まれており、それぞれに独自の特性と適用可能なシナリオがあります。以下に、一般的な Java コレクション フレームワークのデータ構造をいくつか示します。 1. リスト: リストは、要素を繰り返すことができる順序付けされたコレクションです。李

See all articles