1. 程式人生 > >Es6 中for of 使用

Es6 中for of 使用

var arr = ['apple', 'banana', 'orange', 'pear']

//for in 陣列,json 都可以遍歷
for(var i in arr){
    console.log(i)  //i  代表的是陣列的索引值
    console.log(arr[i])
}

//在Es6中 for of  只能遍歷陣列,但不能遍歷json , 主要是配合 new Map() 使用
for(var j of arr){
    console.log(j)  //j apple, banana, orange, pear  直接輸出值
}

for of 還有一個使用時基於new Map()

var oMap = new Map()
    //oMap.set(name, value);  // 設定map 屬性 和 value

    oMap.set('a', 'apple')
    oMap.set('b', 'banana')

    console.log(oMap)

    // 刪除 delete
    // 過去json 刪除方式  delete map.a   但在map 不行
    // map 刪除方式
    oMap.delete('a')  // 就可以刪除了

    //如果獲取某個屬性 用 get
   alert( oMap.get('a'))  //apple
   console.log(oMap)
var oMap = new Map();
    oMap.set('a','apple');
    oMap.set('b','banana');

    /*for(let name of oMap){
        console.log(name)  //a,apple;   b,banana;  並不是單獨的值,而是包含屬性
    }*/

    //應該這樣定義
    for(let [key,value] of oMap){
        console.log(key, value) // key => [a,b],  value => [apple, banana]
    }

    // entries() 返回一個遍歷器物件,用來遍歷[鍵名, 鍵值]組成的陣列。對於陣列,鍵名就是索引值;對於 Set,鍵名與鍵值相同。Map 結構的 Iterator 介面,預設就是呼叫entries方法。
    // keys() 返回一個遍歷器物件,用來遍歷所有的鍵名。
    // values() 返回一個遍歷器物件,用來遍歷所有的鍵值。

    for(let name of oMap.entries()){  //oMap.entries() 相當於  oMap
        console.log(name)  //a,apple;   b,banana
    }

    for(let key of oMap.keys()){
        console.log(key)  //a, b
    }

    for(let value of oMap.values()){
        console.log(value)  //apple, banana
    }