[JS] distinctしてみる

JavaScript

取得してきたデータのあるキーでdistinct的にしたい場合。
配列だったらSetを使う気がする。

var array = new Set([3, 5, 5, 7])
var distinctArray= Array.from(array)
console.log(distinctArray)
// [3,5,7]

DBからぶっ個抜いてきてclass(オブジェクト)の配列の時どうしようってお話。
Laravelのcollectionとかならuniqueとか使えばよいが・・・

var users = [
        {"id" : 1, "name": "かんきち", "group_name": "ゆり"},
        {"id" : 2, "name": "だいじろう", "group_name": "さくら"},
        {"id" : 3, "name": "けいいち", "group_name": "ゆり"}
        ]
var distinct = new Map(
        users.map((u) => [u.group_name, u])
        )
console.log(distinct)
// [{"id" : 1, "name": "かんきち", "group_name": "ゆり"}, {"id" : 2, "name": "だいじろう", "group_name": "さくら"}]

こんな感じでmapを使ってあげるとよさそう

コメント

タイトルとURLをコピーしました