---
# System prepended metadata

title: "\U0001F3C5 Day 28 - 多筆物件取值"
tags: [JS 直播班 - 2025 秋季班]

---

# 🏅 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
-->