1. 程式人生 > 實用技巧 >給物件手動新增迭代機制

給物件手動新增迭代機制

程式碼如下:

 1  //定義一個物件 例:
 2         let obj = {
 3             'name': '張飛',
 4             'age': 23,
 5             'sex':'男'
 6         }
 7 
 8         //手動給object 部署 Symbol.iterator介面機制
 9          obj[Symbol.iterator] = function(){
10              //求物件長度  物件方法
11             var len = Object.keys(obj).length;        
12 var index = 0;//定義下標 13 var key;//定義鍵 14 var keyVal;//定義鍵值 15 return {//返回next方法 16 next : function(){ 17 key = Object.keys(obj)[index++];//通過下邊選中鍵 18 keyVal = obj[key];//對應的鍵值 19 //當下邊小於等於物件長度時 返回 迭代資料
20 return index <= len ? 21 {value : key+':'+ keyVal , done: false} : 22 {value : undefined , done : true} 23 } 24 } 25 } 26 27 //呼叫 介面 28 29 let newiter = obj[Symbol.iterator]();
30 for(o of obj){ 31 console.log(newiter.next()); 32 }