javascript - lodash 从数组中选取对象字段

标签 javascript lodash

我有对象数组:

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']));

一点解释:

  1. _.map() : 需要一个函数,该函数从集合中获取每个项目,以便您可以将其映射到其他对象。
  2. _.partialRight() : 采用一个稍后将调用的函数,其参数附加到末尾
  3. _.pick() : 从对象中获取指定的路径。

关于javascript - lodash 从数组中选取对象字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37877860/

相关文章:

javascript - javascript中对象的递归合并

javascript - 使用 lodash 从数组中返回对象键和值

javascript - Jest 监视模块功能

javascript - 如何使用 RxJS 在 Cyclejs 中将 Observable 流转换为单独的可更新 div

javascript - 通过 AJAX 加载 AngularJS Controller 后,它不起作用

javascript - 如何在 DropZone.js 上为上传的图片创建缩略图?

javascript - 如果日期相同,则按日期排序对象数组,然后按字符串值排序

javascript - 在 for 循环中创建对象语法错误

javascript - 如何缩短 JavaScript 的正则表达式?

javascript - 为什么 lodash _.each 比原生的 for 循环更快?