我有对象数组:
var results= [
{
"_type": "MyType",
"_id": "57623535a44b8f1417740a13",
"_source": {
"info": {
"year": 2010,
"number": "string",
},
"type": "stolen",
"date": "2016-06-16T00:00:00",
"createdBy": "57469f3c71c8bf2479d225a6"
}
}
];
我需要从数组中选择特定的字段。结果,我想得到以下内容:
[
{
"_id": "57623535a44b8f1417740a13",
"info": {
"year": 2010,
"number": "string"
},
"type": "stolen",
"date": "2016-06-16T00:00:00",
"createdBy": "57469f3c71c8bf2479d225a6"
}
]
如您所见,我想选择_id
字段和_source
对象的内容。我如何使用 lodash 做到这一点?
我找到了 .map
函数,但它不接受键数组:
var res = _.map(results, "_source");
最佳答案
你可以这样做:
var mapped = _.map(results, _.partialRight(_.pick, ['_id', 'info', 'type', 'date', 'createdBy']));
一点解释:
-
_.map()
: 需要一个函数,该函数从集合中获取每个项目,以便您可以将其映射到其他对象。 -
_.partialRight()
: 采用一个稍后将调用的函数,其参数附加到末尾 -
_.pick()
: 从对象中获取指定的路径。
关于javascript - lodash 从数组中选取对象字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37877860/