How to get distinct values from an array of objects in JavaScript?

前端 未结 30 2615
执笔经年
执笔经年 2020-11-22 05:29

Assuming I have the following:

var array = 
    [
        {\"name\":\"Joe\", \"age\":17}, 
        {\"name\":\"Bob\", \"age\":17}, 
        {\"name\":\"Carl\         


        
30条回答
  •  盖世英雄少女心
    2020-11-22 06:09

    I wrote my own in TypeScript, for a generic case, like that in Kotlin's Array.distinctBy {}...

    function distinctBy(array: T[], mapFn: (el: T) => U) {
      const uniqueKeys = new Set(array.map(mapFn));
      return array.filter((el) => uniqueKeys.has(mapFn(el)));
    }
    

    Where U is hashable, of course. For Objects, you might need https://www.npmjs.com/package/es6-json-stable-stringify

提交回复
热议问题