ES 6のセット、Mapデータ構造配列
2706 ワード
セット行列
filterフィルタ配列の数値
2つの配列を結合し、重複したものを削除します.
filter()とhas()を利用してデータを交錯させます.
1.コンストラクタWeakSetはSetと似た構造であり、重複しない値のセットでもある.しかし、セットとは違っています.まず、WeakSetのメンバーは対象でしかなく、他のタイプの値ではない.次に、WeakSetの対象は弱引用であり、つまりゴミ回収メカニズムはWeakSetが対象に対する参照を考慮しない.つまり、他のオブジェクトがこのオブジェクトを参照していない場合、ゴミ回収メカニズムは、オブジェクトが占有しているメモリを自動的に回収し、対象がWeakSetに存在することを考慮しない.この特徴はWeakSetのメンバーを引用することができないという意味で、WeakSetは遍歴してはいけません. add(value) delete() has() は、DOMノードを格納するために使用されてもよく、DOMノードが追加され、削除されたときにメモリが漏洩しないようにする. weaksetは値を取ることができません.重複するオブジェクトがあるかどうかを示すためだけに使用することはできません.
Mapオブジェクト
3.属性と方法 size set(key,value) get(key) has(key) delete(key) clear()4.エルゴード方法 keys() values() entries() forEach() 5.Mapは配列構造に変換されます.
Mapと似ていますが、唯一の違いは相手をキーとして受け入れるだけで、ゴミ回収メカニズムには含まれません.4つの方法:
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.属性と方法var weakset = new WeakSet()
let aObj = {a:'aa'}
weakset .add(aObj)
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.属性と方法
var m = new Map([['0','zhangsan'],['1','lisi']]);
console.log([...m.keys()]);// ["0", "1"]
WeakMapMapと似ていますが、唯一の違いは相手をキーとして受け入れるだけで、ゴミ回収メカニズムには含まれません.4つの方法: