4
1

More than 3 years have passed since last update.

JavaScriptのオブジェクト配列を特定キーの値でuniq処理する

Last updated at Posted at 2021-09-01

オブジェクト配列を特定キーの値でユニーク抽出する必要があったので調べてみたのですが、シンプルな記述が見あたらなかったので書いてみました。

  1. Array.mapで値とオブジェクトのArrayイテレータを作り、
  2. new Map(イテレータ)で値でuniq化し、
  3. Map.values() で オブジェクトのイテレータを作り、
  4. [...イテレータ] でArrayにする

オブジェクトのcキーの値でuniq処理する例:

const array = [
   { a: 0, b: 1, c: 2 },
   { a: 3, b: 4, c: 2 },
   { a: 5, b: 6, c: 7 },
   { a: 8, b: 9, c: 7 },
];

let uniq_by_c = [...new Map(array.map(obj => [obj.c, obj])).values()];
console.log(uniq_by_c);
関数化
const uniq = (array, key) => [...new Map(array.map(obj => [obj[key], obj])).values()];
console.log(uniq(array, 'c'));
実行結果
[ { a: 3, b: 4, c: 2 }, { a: 8, b: 9, c: 7 } ]
4
1
1

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
4
1