LoginSignup
1
0

More than 5 years have passed since last update.

reduceを使ってpairの配列を連想配列にする

Last updated at Posted at 2018-02-06

ES6以上が対象です。

概要

例えばslackのchannel一覧など、同じ構造の連想配列が配列として帰ってくる場合があります。

[
  {
    id: '2',
    name: 'hoge',
    ...,
  },
  {
    id: '5',
    name: 'fuga',
    ...,
  },
  {
    id: '0',
    name: 'foo',
    ...,
  }
];

このときに、あるnameは存在するか、対応するidは何かを知りたい場合、一々配列を全部調べる必要があります。
なので、この配列から必要な部分を取り出して連想配列にします。結果として、以下のような連想配列を得ます。

{hoge: "2", fuga: "5", foo: "0"}

方法

reduceを使います。
reduceは左の要素から順に関数を適用できるので、それぞれの要素ごとにnameをkey、idをvalueとして代入してます。

const array = [
  {
    id: '2',
    name: 'hoge'
  },
  {
    id: '5',
    name: 'fuga'
  },
  {
    id: '0',
    name: 'foo'
  }
];

const result = array.reduce((ary, {id, name}) => {
  ary[name] = id;
  return ary;
}, {});
console.log(result); // {hoge: "2", fuga: "5", foo: "0"}

ary[name] = id;ary[id] = name;とすると、idからnameが検索できるようになります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0