Set,Map 資料結構遍歷

2021-10-03 07:50:09 字數 1183 閱讀 5326

array可以使用下標,map和set不能使用下標,es6引入了iterable型別,array,map,set都屬於iterable型別,它們可以使用for...of迴圈來遍歷:

var a = ['a', 'b', 'c'];

var s = new set(['a', 'b', 'c']);

var m = new map([[1, 'x'], [2, 'y'], [3, 'z']]);

for (var x of a)

for (var x of s)

for (var x of m)

>for...of與for...in的區別:for ... in迴圈由於歷史遺留問題,它遍歷的實際上是物件的屬性名稱。乙個array陣列實際上也是乙個物件,它的每個元素的索引被視為乙個屬性。

當我們手動給array物件新增了額外的屬性後,for ... in迴圈將帶來意想不到的意外效果:

var a = ['a', 'b', 'c'];

a.name = 'hello';

for (var x in a)

var a = ['a', 'b', 'c'];

a.name = 'hello';

for (var x of a)

更好的方式:iterable內建的foreach方法:

var a = ['a', 'b', 'c'];

a.foreach(function (element, index, array) );

var s = new set(['a', 'b', 'c']);

s.foreach(function (element, sameelement, set) );

//引數1=a,引數2=a

//引數1=b,引數2=b

//引數1=c,引數2=c

var m = new map([[1, 'x'], [2, 'y'], [3, 'z']]);

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

//引數1=x,引數2=1

//引數1=y,引數2=2

//引數1=z,引數2=3

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資料結構

1.set 它類似於陣列,但是成員的值都是唯一的,沒有重複的值。set 本身是乙個建構函式,用來生成 set 資料結構。const s new set 2,3,1,2,4,5,1 foreach x s.add x for let i of s 2.es6 提供了 map 資料結構。它類似於物件,也...

資料結構 樹的遍歷(遞迴遍歷)

樹的遍歷 遞迴遍歷 include include include typedef struct treenodetreenode,treenodepointer 先序遍歷 void printroot treenodepointer root 中序遍歷 void printroot2 treeno...