配列をオブジェクトに変換する(es2015 ver)
5715 ワード
const arr = [
{
id: 'cd',
name: 'Clarice Dillard'
}, {
id: 'nb',
name: 'Noel Bond'
}, {
id: 'sd',
name: 'Sheree Dunn'
}
];
という形のオブジェクトをメンバーにもつ配列を
obj = {
cd: {
id: "cd",
name: "Clarice Dillard"
},
nb: {
id: "nb",
name: "Noel Bond"
},
sd: {
id: "sd",
name: "Sheree Dunn"
}
}
という感じのオブジェクトに変換したい、できるだけスッキリ書きたい、という話
例
const obj = arr.reduce(
(o, c) => Object.assign(o, {[c.id]: c}),
{}
)
Object Rest/Spread Propertiesを使ったver
もう少し短くかける
- Object Rest/Spread Properties
- babel-plugin-transform-object-rest-spreadとか、babel-preset-stage-3が入ってる環境
const obj = arr.reduce(
(o, c) => ({...o, [c.id]: c}),
{}
)
再び配列に戻したいとき
Object.keys()
、Array.map()
でいまのとこやってる
const arr2 = Object.keys(obj).map(k => obj[k])
Author And Source
この問題について(配列をオブジェクトに変換する(es2015 ver)), 我々は、より多くの情報をここで見つけました https://qiita.com/sakymark/items/8832d7a9082935a2d58e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .