JavaScript でスプレッド構文使ってオブジェクトから pick する
こういうのがある
const obj = { a: 1, b: 3, c: 5 };ここから a, b だけを取り出した
{ a: 1, b: 3 }を作りたい
結論
こうすれば良い
const picked = (({ a, b }) => ({ a, b }))(obj);
流れ
スプレッド構文*1使ってこんな感じで要素を取り出せる
const { a, b } = obj;
console.log(a, b); // => 1 3関数にして同じことやるとこんな感じ
const proc = ({ a, b }) => { console.log(a, b) };
proc(obj); // => 1 3戻り値で受け取るとこんな感じ
const fn = ({ a, b }) => { return { a, b } };
const picked = fn(obj);
console.log(picked); // => { a: 1, b: 3 }なので省略して書くと
const picked = (({ a, b }) => { return { a, b } })(obj);return も省略できる*2ので
const picked = (({ a, b }) => ({ a, b }))(obj);