返回課程

從陣列建立鍵值物件

重要性:4

假設我們收到一個陣列 {id:..., name:..., age:... } 的使用者。

建立一個函式 groupById(arr),從陣列建立一個物件,其中 id 為鍵,陣列項目為值。

例如

let users = [
  {id: 'john', name: "John Smith", age: 20},
  {id: 'ann', name: "Ann Smith", age: 24},
  {id: 'pete', name: "Pete Peterson", age: 31},
];

let usersById = groupById(users);

/*
// after the call we should have:

usersById = {
  john: {id: 'john', name: "John Smith", age: 20},
  ann: {id: 'ann', name: "Ann Smith", age: 24},
  pete: {id: 'pete', name: "Pete Peterson", age: 31},
}
*/

當使用伺服器資料時,此類函式非常方便。

在此任務中,我們假設 id 是唯一的。沒有兩個陣列項目具有相同的 id

請在解答中使用陣列 .reduce 方法。

開啟一個包含測試的沙盒。

function groupById(array) {
  return array.reduce((obj, value) => {
    obj[value.id] = value;
    return obj;
  }, {})
}

在沙盒中開啟包含測試的解答。