給Object物件新增迭代機制(迭代器)
阿新 • • 發佈:2020-07-24
程式碼如下:
` //定義一個物件 例: 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()); }`