配列からキー付きオブジェクトを作成する
importance: 4
{id:..., name:..., age:... }
の形式でユーザーの配列を受け取ったとします。
配列から、id
をキーとして、配列アイテムを値としてオブジェクトを作成するgroupById(arr)
関数を作成します。
例
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
を持つ配列アイテムは2つ存在しません。
ソリューションでは、配列.reduce
メソッドを使用してください。
function groupById(array) {
return array.reduce((obj, value) => {
obj[value.id] = value;
return obj;
}, {})
}