ES 6のセット、Mapデータ構造配列

2706 ワード

セット行列
filterフィルタ配列の数値
var ss = [1,2,3,4,5,6,7,8]
ss.filter(function(ele){
    if(ele>5){
        return true
    }
    return false
});
console.log(ss) //[6,7,8]
集合
2つの配列を結合し、重複したものを削除します.
let a = new Set([1,2,3,4])
let b = new Set({4,5,6})
let union = new Set([...a,...b])
console.log([...union]) //1 2 3 4 5 6      4
共通点
filter()とhas()を利用してデータを交錯させます.
let a = new Set([1,2,3,4])
let b = new Set({4,5,6})
let intersect = [...a].filter(function(ele){
   return b.has(elem)
})
// es6     
//  let intersect = [...a].filter(
//        x => x.has(x)
//  })
差集合
let a = new Set([1,2,3,4])
let b = new Set({4,5,6})
let difference= [...a].filter(function(ele){
   return !b.has(elem)
})
//1,2,3
WeakSet対象
1.コンストラクタWeakSetはSetと似た構造であり、重複しない値のセットでもある.しかし、セットとは違っています.まず、WeakSetのメンバーは対象でしかなく、他のタイプの値ではない.次に、WeakSetの対象は弱引用であり、つまりゴミ回収メカニズムはWeakSetが対象に対する参照を考慮しない.つまり、他のオブジェクトがこのオブジェクトを参照していない場合、ゴミ回収メカニズムは、オブジェクトが占有しているメモリを自動的に回収し、対象がWeakSetに存在することを考慮しない.この特徴はWeakSetのメンバーを引用することができないという意味で、WeakSetは遍歴してはいけません.
  
var ws = new WeakSet();
ws.add(1); 
// Uncaught TypeError: Invalid value used in weak set
2.属性と方法
  • add(value)
  • delete()
  • has()
  • var weakset = new WeakSet()
    let aObj = {a:'aa'}
    weakset .add(aObj)
    
  • は、DOMノードを格納するために使用されてもよく、DOMノードが追加され、削除されたときにメモリが漏洩しないようにする.
  • weaksetは値を取ることができません.重複するオブジェクトがあるかどうかを示すためだけに使用することはできません.
    Mapオブジェクト
    var mapData = new Map();
    var obj1 = {};
    var obj2 = {};
    mapData.set(obj1,'111') //    
    mapData.set(obj2,'333')//    
    console.log( mapData.get(obj1) ) //   
    console.log( mapData.has(obj1) ) //  
    console.log( mapData.delete(obj1) )   
    mapData.clear() //  
    
    1.目的のMap構造はオブジェクトと類似しており、従来のオブジェクトとの比較では文字列のみをキーとし、Map構造は変数をキーとして使用することができます.このような対応関係を「値--値」対応といい、対象の完璧版です.2.コンストラクタコンストラクタはパラメータとして2次元配列を受けます.
    var m = new Map([['name','zhangsan'],['sex','male']]);
    console.log(m);// Map {"name" => "zhangsan", "sex" => "male"}
    
    
    同じキーに複数の値を割り当てると、前の値は後の値に上書きされます.同じオブジェクトに対する参照のみが、Map構造は同じキーと見なされます.
    3.属性と方法
  • size
  • set(key,value)
  • get(key)
  • has(key)
  • delete(key)
  • clear()4.エルゴード方法
  • keys()
  • values()
  • entries()
  • forEach()
  • 5.Mapは配列構造に変換されます.
    var m = new Map([['0','zhangsan'],['1','lisi']]);
    console.log([...m.keys()]);// ["0", "1"]
    
    WeakMap
    Mapと似ていますが、唯一の違いは相手をキーとして受け入れるだけで、ゴミ回収メカニズムには含まれません.4つの方法: