javascript - javascript 将嵌套对象带到根级别

标签 javascript lodash

我得到了一个如下所示的 json 对象:

{
  "total": 298,
  "max_score": 5.2472496,
  "hits": [
    {
      "_index": "kafkajmx2",
      "_type": "logs",
      "_id": "AVo-VsUdponm9zQGYYS5",
      "_score": 5.2472496,
      "_source": {
        "metric_value_number": 134,
        "path": "/home/usrxxx/logstash-5.2.0/bin/jmxconf",
        "@timestamp": "2017-02-14T20:35:58.266Z",
        "metric_name": "IsrExpandsPerSec.Count",
        "@version": "1",
        "host": "localhost",
        "metric_type": "ReplicaManager",
        "metric_path": "node1.kafka.server:type=ReplicaManager,name=IsrExpandsPerSec.Count",
        "type": null,
        "metric_node": "node1.kafka.server"
      }
    },
    {
      "_index": "kafkajmx2",
      "_type": "logs",
      "_id": "AVo-V69Yponm9zQGYYwS",
      "_score": 5.2472496,
      "_source": {
        "metric_value_number": 134,
        "path": "/home/usrxxx/logstash-5.2.0/bin/jmxconf",
        "@timestamp": "2017-02-14T20:36:58.216Z",
        "metric_name": "IsrExpandsPerSec.Count",
        "@version": "1",
        "host": "localhost",
        "metric_type": "ReplicaManager",
        "metric_path": "node1.kafka.server:type=ReplicaManager,name=IsrExpandsPerSec.Count",
        "type": null,
        "metric_node": "node1.kafka.server"
      }
    }
]
}

我想要做的是将 _source 对象提升到根级别,如下所示:

{
            "metric_value_number": 134,
            "path": "/home/usrxxx/logstash-5.2.0/bin/jmxconf",
            "@timestamp": "2017-02-14T20:36:58.216Z",
            "metric_name": "IsrExpandsPerSec.Count",
            "@version": "1",
            "host": "localhost",
            "metric_type": "ReplicaManager",
            "metric_path": "node1.kafka.server:type=ReplicaManager,name=IsrExpandsPerSec.Count",
            "type": null,
            "metric_node": "aesdp0101.kafka.server"
          },
{
            "metric_value_number": 134,
            "path": "/home/usrxxx/logstash-5.2.0/bin/jmxconf",
            "@timestamp": "2017-02-14T20:35:58.266Z",
            "metric_name": "IsrExpandsPerSec.Count",
            "@version": "1",
            "host": "localhost",
            "metric_type": "ReplicaManager",
            "metric_path": "node1.kafka.server:type=ReplicaManager,name=IsrExpandsPerSec.Count",
            "type": null,
            "metric_node": "aesdp0101.kafka.server"
          }

我不确定如何在 javascript 中本地执行此操作,或者 lodash 中是否也有办法执行此操作...

我尝试过这样做,但我认为 _source 中的 _ 正在影响代码?

      var metricData = [];
      for (var i=0; i < response.length; i++) {

         metricData.push(response[i]._source);
         console.log("metric data: ", metricData);

      };

最佳答案

您是否忘记选择“点击”?

尝试以下操作:

metricData = response.hits.map(hit => hit["_source"])

关于javascript - javascript 将嵌套对象带到根级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42236230/

相关文章:

javascript - 围绕索引重新排序数组

javascript - 如何使用 Lodash 删除对象数组中的某些元素

javascript - jquery 中的 Click 事件是永久的吗

javascript - 在不同的 div 中分别使用 jQuery 创建动态元素

javascript - 如何连接对象

JavaScript 将数组元素移动到数组末尾

lodash - 如何使用 VueJS 去除 AJAX 调用的抖动?

javascript - 使用电子表格中的数据自定义 Google LineChart 中的工具提示

javascript - 比例因子的计算

javascript - ScrollSpy 无法在我的网站上运行