Underscore.js - 获取唯一属性值

Ila*_*sda 13 javascript json underscore.js lodash

我最近才发现了underscore.js的强大功能,对我提出建议的方法仍然是新手:

我如何从中得到:

[
    [{
        "name": "Type 2",
        "id": 14
    }],
    [{
        "name": "Type 1",
        "id": 13
    }, {
        "name": "Type 3",
        "id": 15
    }],
    [{
        "name": "Type 2",
        "id": 14
    }],
    [{
        "name": "Type 1",
        "id": 13
    }]
]
Run Code Online (Sandbox Code Playgroud)

对此:

["Type 1","Type 2","Type 3"]
Run Code Online (Sandbox Code Playgroud)

即没有重复和"名称"属性.

任何建议非常感谢.

Jak*_*cil 28

_(data).chain().flatten().pluck('name').unique().value()
Run Code Online (Sandbox Code Playgroud)

(将嵌套列表转换为平面列表,name从列表中的每个对象中选取,并使其唯一.)


McG*_*gle 10

  • flatten首先使用,将嵌套数组转换为平面数组.
  • 然后pluck将"名称"值作为数组
  • 最后 uniq

_.uniq(_.pluck(_.flatten(items), "name"))
Run Code Online (Sandbox Code Playgroud)

小提琴