如何通过NodeJS

时间:2018-05-10 08:45:17

标签: node.js

我需要通过两个字段对对象数组进行排序。我需要它尽可能减少计算量。

这是对象数组的外观

let arr = [
    {
        name: 'Liate',
        surname: 'Tsek'
    },
    ...
]

这就是我这样做的方式

let unique = [...new Set(arr.map(item => item.name))]

这仅适用于第一个字段,如何让它与两个字段一起使用?

1 个答案:

答案 0 :(得分:0)

let seen = new Set()
let uniArr = arr.filter(entry => {
    /*
    ** Create unique key of code and segment
    */
    const key = entry.name+ "-" + entry.surname
    /*
    **  Check if the key does not exist in the SET
    */
    const keep = !seen.has(key)
    /*
    ** If keep doesn't exist, add it to the set
    */
    if (keep)
        seen.add(key)
    /*
    ** Return
    */
    return keep
})

这是有用的,因为用于连接字段的分隔符永远不会出现在任一字段中。希望它有所帮助