プログラミング初学者のための実務につながる練習問題 JavaScript011 キーの取得

今日のタスク

以下のようなデータがある。

const data = [
  {pref: '北海道', count: 1000, type: 'A'},
  {pref: '北海道', count: 2000, type: 'B'},
  {pref: '青森', count: 3000, type: 'A'},
  {pref: '青森', count: 4000, type: 'B'},
  {pref: '埼玉', count: 5000, type: 'A'},
  {pref: '埼玉', count: 6000, type: 'B'},
  {pref: '不明', count: 99999, type: 'C'},
]

このデータのprefの値を配列ですべて抜き出してください。ただし、重複は除外します。

また、’不明’は除外してください。できるだけ汎用的な関数で実装してください。

// 結果
[ '北海道', '青森', '埼玉' ]

実装例

const getKeys = (data, indexKey, excludedName = '') => {
  const keys = data.filter(d => d[indexKey] !== excludedName).map(d => {
    return d[indexKey]
  })
  return Array.from(new Set(keys))
}

filterで指定した条件のオブジェクトを除外した後に、map で配列にします。

その後、Set を使うことで重複を除外し、Array.from で配列に戻します。

お疲れ様でした。