es6學習筆記整理(九)set map資料結構

2021-08-27 08:08:24 字數 3009 閱讀 8330

set的用法

set是一種集合;類似陣列,不同的是set集合中的元素不能重複

有兩種定義方式:

第一種:定義時不加引數

let list = new set();

list.add(1);

list.add(2);

console.log(list.size);//2

第一種:定義時加引數

let arr = [1,2,3,4,5];

let list = new set(arr);

console.log(list.size);//5

set集合中的元素不能重複的情況如下:

let list = new set();

list.add(1);

list.add(2);

list.add(1);

console.log(list);//set(2) 不報錯,相同的元素加不進去

set重要使用,去重

let arr1 = [1,2,3,1,2];

let list1 = new set(arr1);

console.log(list1);//set(3)

set是不會進行資料型別的**轉換,如下事例中,字串2就不等於數值2

let arr2 = [1,2,3,1,'2'];

let list2 = new set(arr2);

console.log(list2);//set(4)

set例項的方法:

var arr = [1,2,3,4,5];

let list = new set(arr);

console.log(list.has(2));//true

console.log(list.delete(4),list);//true set(4)

list.clear();

console.log(list);//set(0) {}

set例項的方法和遍歷:

var arr = [1,2,3,4,5];

let list = new set(arr);

for(let key of list.keys())

for(let value of list.values())

//陣列的key和value是一樣的。不加values()的情況下,預設values();

for(let value of list)

for(let [key,value] of list.entries())

list.foreach(function (item));
weakset的用法

weakset和set的區別:

let weaklist = new weakset();

let obg = {};

weaklist.add(obg);

// weaklist.add(2);//這樣新增就會報錯,因為不是物件

console.log('weaklist', weaklist);//weaklist weakset }

map的用法

map是乙個物件,類似object,有key,value。不同的是object中的key只能是字串,而map的key可以使任意資料型別。

map和set的用法十分相似,定義方法也有有兩種:

第一種沒有引數的:

let map = new map();

let arr = [1,2,3];

map.set(arr,456);

console.log(map);//map(1)

console.log(map.get(arr));//456

第二種有引數的:new map([[key,value],[key,value]])

let map = new map([['a',123],['b',456]]);

console.log(map);//map(2)

這裡需要注意:map新增元素使用的是.set(),獲取時使用的是.get();

map常用的屬性值:size delete clear has

let map = new map([['a',123],['b',456]]);

console.log(map);//map(2)

console.log(map.has('a'));//true

console.log(map.size);//2

console.log(map.delete('a'),map);//true map(1)

map.clear();

console.log(map);//map(0) {}

map常用的方法:keys(),values(),entries()

和for of和foreach()迴圈

let a = [["one",1],["two",2]];

let map = new map(a);

map.foreach(function(value, key, map));

for(var key of map.keys())

for(var value of map.values())

for(var [key,value] of map.entries())

weakmap的用法

weakmap與map的區別:

var weakmap = new weakmap();

let obj = {};

weakmap.set(obj, 123);

console.log(weakmap.get(obj));//123

ES6學習筆記

let 塊變數 作用域為塊 const 常亮 作用域為當前塊 解構賦值 例 var x,y 1,2 字元擴充套件 at includes startswith endswith repeat codepointat 模板字串 例 正則的uiy 數值擴充套件 number.isfinite numbe...

ES6學習筆記

常用語法 1 let 與var類似,不同的是let定義的變數有塊級作用域,比如 var a 1 while true alert a 2 用let let a 1 while true alert a 12 const用來定義變數,但是定義之後的值不能再次更改了。乙個實際的用途是用來定義引入的模組,...

ES6學習筆記

var 有變數提公升 let 是塊級作用域,沒有變數提公升 模板語言 還原百分百定義的格式 const 定義常量,特殊情況可以改變值 const b 1 b 2 error const b b.a 2 ok b.c 10 ok object是記憶體位址,位址不變就沒問題 預設值 在不知道接收到個什麼...