Javascript 如何仅返回一个特定密钥对的多个集合?

Javascript 如何仅返回一个特定密钥对的多个集合?,javascript,lodash,Javascript,Lodash,使用lodash,我希望获取具有多个密钥对的多个集合,并返回具有特定密钥对的集合 输入JSON: var rawCollection = [ { "city": "Antwerp", "region": "Europe", "spanish_city_name": "Amberes", "title": "Antwerp" }, { "city": "Antwerp", "region": "NA", "spanish_city_name"

使用lodash,我希望获取具有多个密钥对的多个集合,并返回具有特定密钥对的集合

输入JSON:

var rawCollection = [
{
    "city": "Antwerp",
    "region": "Europe",
    "spanish_city_name": "Amberes",
    "title": "Antwerp"
},
{
    "city": "Antwerp",
    "region": "NA",
    "spanish_city_name": "Amberes",
    "title": "Antwerp"
},
{
    "city": "Antwerp",
    "region": "SA",
    "spanish_city_name": "Amberes",
    "title": "Antwerp"
}
]

期望输出:

[{                     
    "region": "Europe",
},
{
    "region": "NA",
},
{
    "region": "SA"
}]
我尝试了uniq(rawCollection,'region'),
\u filter
和其他一些功能

试一试

使用:

这将为您提供区域名称数组(字符串数组),而不是对象数组。像这样:

[ 'Europe', 'NA', 'SA' ]
拥有一堆具有单个字段的对象似乎是浪费。但是,如果您想要像问题中那样的对象数组,则可以这样做:

var regions = _.map(rawCollection, _.partialRight(_.pick, 'region'));
使用
partOK
可以缩写代码。这相当于:

var regions = _.map(rawCollection , function (x) {
   return _.pick(x, 'region');
});
map
调用将返回:

[ { region: 'Europe' }, { region: 'NA' }, { region: 'SA' } ]
使用:

这将为您提供区域名称数组(字符串数组),而不是对象数组。像这样:

[ 'Europe', 'NA', 'SA' ]
拥有一堆具有单个字段的对象似乎是浪费。但是,如果您想要像问题中那样的对象数组,则可以这样做:

var regions = _.map(rawCollection, _.partialRight(_.pick, 'region'));
使用
partOK
可以缩写代码。这相当于:

var regions = _.map(rawCollection , function (x) {
   return _.pick(x, 'region');
});
map
调用将返回:

[ { region: 'Europe' }, { region: 'NA' }, { region: 'SA' } ]

需要对对象而不是对象调用
pick
collection@Bergi . 谢谢你指出这一点。实际上指的是
pick
需要对对象而不是对象调用collection@Bergi . 谢谢你指出这一点。实际上指的是