「用 for 迴圈遍歷 Array」在 JavaScript 中,多半內建的方法都有提供 index 的額外選項,讓你可以同時取得 index 來做一些操作。不過在物件 Object {} 這樣的資料架構下,其實是沒有 index 這樣的概念的。若今天想要在「遍歷物件時,依照撰寫的順序存取」的話,那可以利用以下的組合技達成。
內容
1. Object.entries() 方法,可以將物件轉換成一組 array,每一個 index 內則會再包著一個由 key, value 組成的 array
2. 承接第一點,藉由產生的 index ,你可以再使用一次 Object.entries()
3. 使用 for … of 的方法,搭配解構方法將值給取出
程式碼
你可以打開瀏覽器的開發者工具中的 console.log 試試效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
const obj = {a:'one', b: 'deux', c:'三', d:'vier'} for(const [index, [key, value]] of Object.entries(Object.entries(obj))){ console.log('result', index, key, value) } /* result 0 a one result 1 b deux result 2 c 三 result 3 d vier */ for(const [index, [, value]] of Object.entries(Object.entries(obj))){ console.log('result', index, value) } /* result 0 one result 1 deux result 2 三 result 3 vier */ |
參考資料
1. Object.entries()
2. Iterate over JavaScript object with index