# 🏅 Day 28 - 多筆物件取值 ### Object.keys(), Object.values() 使用練習 * Object.keys() 可以取得指定物件的所有 key 值,並回傳一個陣列。 * Object.values() 可以取得指定物件的所有 value 值,並回傳一個陣列。 ```javascript= const object1 = { a: "字串", b: 42, c: false }; console.log(Object.keys(object1)); // 結果: ["a", "b", "c"] console.log(Object.values(object1)); // 結果: ["字串", 42, false] ``` 問題 --- 請練習使用 Object.keys(),修改資料格式,並存入名稱為 answer 的物件,格式如下圖: ![](https://i.imgur.com/7pA41y0.png) 範例程式碼: ```javascript= let answer = {}; // 請把修改完的資料存入 answer 物件。 let url = "https://raw.githubusercontent.com/hexschool/js-traninging-week6API/main/data.json"; axios.get(url) .then(function(response) { let total = {}; let data = response.data; data.forEach(function(item, i) { if(total[item.jsGroup] === undefined) { total[item.jsGroup] = 1; } else { total[item.jsGroup] += 1; } }); // 將整理好的 total 資料調整成圖中的格式存入 answer 中 /* 程式碼開始 */ /* 程式碼結束 */ console.log(answer); }); ``` <!-- 解答: ``` let answer = {}; let url = "https://raw.githubusercontent.com/hexschool/js-traninging-week6API/main/data.json"; axios.get(url) .then(function(response) { let total = {}; let data = response.data; data.forEach(function(item, i) { if(total[item.jsGroup] === undefined) { total[item.jsGroup] = 1; } else { total[item.jsGroup] += 1; } }); let keyName = Object.keys(total); keyName.forEach(function(item) { if(item !== "未分組") { answer[`第 ${item} 組人數`] = total[item]; } else { answer[`${item}人數`] = total[item]; } }); console.log(answer); }); ``` 進一步解說解答程式碼: https://codepen.io/fhljksmg-the-styleful/pen/jEWLqGe?editors=0012 -->