その何かES6セットと地図

セット 

1.Set特長

クラス・データ構造は、固有の値コンストラクタ焦点ユニークな機能の新メンバーの配列です 

一般的な方法の例としては2.Set

    console.log( '------------設定された動作方法-----------------------' ); 
    LETのSETL設定された新たな新=(1,2 ,. 3 ,. 3。] ).add)(68)42である(.add .add({A:2})を追加し({A:2 }。)を追加(のNaN 3)は.add(のNaN 3)
    はconsole.log( "SETL"、SETL) (8)セット// {1,2 ,. 3、42、...、68である} "SETL" 
    set1.delete(1 
    はconsole.log( "SETL"、SETL)//集合{2 ,. 3、(7) 42、68、{...}、...} "SETL" 
    はconsole.log(set1.has(2)); // trueに set1.clear() はconsole.log(SETL)//セット(0){}  //概要:同じ簡略化NaNのものとは異なる複雑なデータ型を追加することを1.Setデータタイプ配列 はconsole.log(「--------セットトラバーサル方法を-------------」)しましょうset1M =新しいセット([ 1、2、2、2


、]); CONSOLE.LOG(set1M.values())// SetIterator {1,2}にconsole.log(set1M.keys()); // SetIterator {1,2}にconsole.log(set1M.entries() )// SetIterator {1 => 1、2 => 2} set1M.forEach(値=>にconsole.log(値))// 1 2 //概要:戻り値として値を設定し、トラバーサルキーの方法を返しますインターフェース//コールのforEachノーリターン値のために呼び出すことができます

3.SETいくつかの古典的な顔の質問

重複排除アレイとセット交差点、労働組合、違いを実装する1

    console.log( '-------設定的应用1 ---------------'); 
    //数组去重
    にconsole.log([...新しいセット([1、2、2、])])// [1]、[2] 
    にconsole.log(Array.from(新しいセット([1、2、 2])))// [1,2] 

    せset11Arr =新しいセット([1、2、3])
    させset12Arr =新しいセット([2,3,4])
    //交集
    せ交通=新しいセット([ ... set11Arr] .filter(X => set12Arr.has(X)))。
    console.log( "交通"、交通)//セット(2){2、3} 
    //并集
    はconsole.log(新しいセット([... set11Arr、... set12Arr]))//セット(4 ){1、2、3、4} 
    //差集
    CHA新しいセット([... set11Arr] .filter(X => set12Arr.has(X)!))=ましょう。
    console.log( "CHA"、CHA)//セット(1){1} 

アレイ中に存在する任意の二つが等しく和そのそうであれば、所与の無秩序アレイ、および変数の和の2の整数値は、それが真を返します。それ以外の場合はfalseを返します。例えば、配列[3、5、1、4]、及びSUM = 9、機能は、理由5 + 4 = 9 trueを返します。

  // 常规版本 
    のconst findSum =(ARR、ヴァル)=> { 
        searchValuesのみましょう = 新しいセット(); 
        searchValues.add(ヴァル - ARR [0 ])。
        (; I <長さ、iは1、長さ= arr.lengthを=せI ++ ){ 
            searchValせ =ヴァル- ARR [I]。
            もし(searchValues.has(ARR [I])){
                 戻り 
            } { 
                searchValues.add(searchVal)。
            } 
        }。
        リターン はfalse ; 
    }。


    // 简洁的版本:
    constのfindSum =(ARR、合計)=> 
        arr.some((セット => N => set.has(N)|| set.add(合計- N))(!新しいセット)); 

    見つけてみましょう = findSum([3、5、1、4]、9 
    にconsole.log(発見)// 

 

地図

1.Map機能 

オブジェクトキーの文字列のみ結合構造のオブジェクトの元の拡張子に対応するClassオブジェクトは、拡張された地図です

一般的な方法の例としては2.Map

    console.log( "------------地図操作方法------------------" 
    MAP1をしましょう = 新しい地図([[ "A 」、1]、[ "B"、2]])。セット( "C"、3).SETを( ""、5)// セット方法有值更新没值替换 
    はconsole.log( "MAP1"、 MAP1)// マップ(3){ "" => 5、 "B" => 2、 "C" => 3} 
    はconsole.log(map1.get( ""))// 5 
    はconsole.log( map1.has( ""))//  
    MAP1。削除( "" 
    はconsole.log( "MAP1"、MAP1)// マップ(2){ "B" => 2、 "C" => 3} 
    MAP1。
    console.log( "------------地図トラバーサル方法------------------" 
    のlet MAPM = 新しい新しい地図([[「A "1]、[" B "2 ]])
    はconsole.log(MapM.values())// MapIterator {1,2} 
    にconsole.log(MapM.keys())    // MapIterator {" A」、 "B"} 
    はconsole.log(MapM.entries())// MapIterator { "A" => 1、 "B" => 2} 
    MapM.forEach(X =>にconsole.log(X))// 。1 2 
    // 概要:値とキーの地図、エントリメソッドがコールのためのインタフェースからトラバースを返す
    // コールのforEachノーリターン値

いくつかの古典的な顔の質問3.Map 

配列にマッピングする方法1.

console.log([... 新しい地図([[ ""、1]、[ 'B'、2]])])// [[ ""、1]、[ 'B'、2]]

 

 

 

おすすめ

転載: www.cnblogs.com/sunxiaopei/p/11951960.html