array可以使用下標,map和set不能使用下標,es6引入了iterable型別,array,map,set都屬於iterable型別,它們可以使用for...of迴圈來遍歷:
>for...of與for...in的區別:for ... in迴圈由於歷史遺留問題,它遍歷的實際上是物件的屬性名稱。乙個array陣列實際上也是乙個物件,它的每個元素的索引被視為乙個屬性。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)
當我們手動給array物件新增了額外的屬性後,for ... in迴圈將帶來意想不到的意外效果:
var a = ['a', 'b', 'c'];
a.name = 'hello';
for (var x in a)
更好的方式:iterable內建的foreach方法:var a = ['a', 'b', 'c'];
a.name = 'hello';
for (var x of a)
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...