es6 set map應用場景

2022-05-06 03:15:10 字數 3293 閱讀 7220

1.陣列去重

2.字串去重

屬性:set 例項的方法分為兩大類:操作方法(用於運算元據)和遍歷方法(用於遍歷成員)。下面先介紹四個操作方法。

set 結構的例項有四個遍歷方法,可以用於遍歷成員。

需要特別指出的是,set的遍歷順序就是插入順序。這個特性有時非常有用,比如使用 set 儲存乙個**函式列表,呼叫時就能保證按照新增順序呼叫。

(1)keys()values()entries()

keys方法、values方法、entries方法返回的都是遍歷器物件

(2)foreach()

map 物件儲存鍵值對。任何值(物件或者原始值) 都可以作為乙個鍵或乙個值。

var mymap = new map();

mymap.set("bar", "baz");

mymap.set(1, "foo");

mymap.size; // 2

mymap.has("bar"); // true

mymap.clear();

mymap.size; // 0

mymap.has("bar") // false

var mymap = new map();

mymap.set(0, "zero");

mymap.set(1, "one");

for (var [key, value] of mymap)

// 將會顯示兩個log。乙個是"0 = zero"另乙個是"1 = one"

for (var key of mymap.keys())

// 將會顯示兩個log。 乙個是 "0" 另乙個是 "1"

for (var value of mymap.values())

// 將會顯示兩個log。 乙個是 "zero" 另乙個是 "one"

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

// 將會顯示兩個log。 乙個是 "0 = zero" 另乙個是 "1 = one"

mymap.foreach(function(value, key) , mymap)

// 將會顯示兩個logs。 乙個是 "0 = zero" 另乙個是 "1 = one"

set 物件

set 物件允許你儲存任何型別的唯一值,無論是原始值或者是物件引用。

var myset = new set();

myset.add(1);

myset.add("foo");

myset.size; // 2

myset.has("foo"); // true

myset.clear();

myset.size; // 0

myset.has("bar") // false

// 迭代整個set

// 按順序輸出:1, "some text"

for (let item of myset) console.log(item);

// 按順序輸出:1, "some text"

for (let item of myset.keys()) console.log(item);

// 按順序輸出:1, "some text"

for (let item of myset.values()) console.log(item);

// 按順序輸出:1, "some text"

//(鍵與值相等)

for (let [key, value] of myset.entries()) console.log(key);

// 轉換set為array (with array comprehensions)

var myarr = [v for (v of myset)]; // [1, "some text"]

// 替代方案(with array.from)

var myarr = array.from(myset); // [1, "some text"]

// 如果在html文件中工作,也可以:

myset.add(document.body);

myset.has(document.queryselector("body")); // true

// set和array互換

myset2 = new set([1,2,3,4]);

myset2.size; // 4

[...myset2]; // [1,2,3,4]

// 用foreach迭代

myset.foreach(function(value) );

var myarray = ["value1", "value2", "value3"];

// 用set構造器將array轉換為set

var myset = new set(myarray);

myset.has("value1"); // returns true

// 用...(展開操作符)操作符將set轉換為array

console.log([...myset]); // 與myarray完全一致

擴充套件語法允許乙個表示式在期望多個引數(用於函式呼叫)或多個元素(用於陣列字面量)或多個變數(用於解構賦值)的位置擴充套件。

let arr1 = [0, 1, 2];

let arr2 = [3, 4, 5];

arr1 = [...arr2, ...arr1];

console.log(arr1) // [3, 4, 5, 0, 1, 2]

var arr=[3, 62, 3, 38, 20, 42, 14, 5, 38, 29, 42];

console.log(new set(arr))

可以封裝乙個函式

function uniquearray(arr)

用這個函式可以陣列去重。

或者如下寫也可以,比較簡單的陣列去重

[...new set([1,3,4,5,1,2,3,3,4,8,90,3,0,5,4,0])]

es6 set map擴充套件

一.將set集合轉換為陣列 方法1 let set new set 1,2,3,4,5 let arr array.from set console.log arr 1,2,3,4,5 console.log set set 方法2 let set new set 1,2,3,4 let arr s...

es6 set map資料結構

set的key一定是字串 let list new set list.add 5 向set中增加值要用add list.add 6 console.log size list.size set的長度要用size 結果為size 2 還有一種宣告方法,在set初始化時就定義值 結果為size 5 si...

ES6 Set Map 主要方法對比

setmap 描述無序,不重複,無下標,自帶去重,類似陣列 沒個元素由鍵值對組成,類似物件.其他 同set 建立例項 let set new set arr let map new map arr 新增元素 set.add 元素 例 set.add 蒙毅 map.set 鍵 鍵值 刪除元素 set....