1. 程式人生 > 實用技巧 >給Object物件新增迭代機制(迭代器)

給Object物件新增迭代機制(迭代器)

程式碼如下:

  `  //定義一個物件 例:
    let obj = {
        'name': '張飛',
        'age': 23,
        'sex':'男'
    }
    //手動給object 部署 Symbol.iterator介面機制
     obj[Symbol.iterator] = function(){
         //求物件長度  物件方法
        var len = Object.keys(obj).length;        
        var index = 0;//定義下標
        var key;//定義鍵
        var keyVal;//定義鍵值
        return {//返回next方法
            next : function(){
                key = Object.keys(obj)[index++];//通過下邊選中鍵
                keyVal = obj[key];//對應的鍵值
                //當下邊小於等於物件長度時  返回 迭代資料
                return index <= len ? 
                {value : key+':'+ keyVal , done: false} : 
                {value : undefined , done : true}
            }   
        }
    }
    //呼叫 介面
    let newiter = obj[Symbol.iterator]();
    for(o of obj){
        console.log(newiter.next());
    }`