【问题标题】:Get specific value from an object and push it into an array从对象中获取特定值并将其推送到数组中
【发布时间】:2021-02-10 16:31:33
【问题描述】:

您好,我有一个 obj(来自解析的 JSON),我试图从中仅获取一个值“VALUE”(default.timelineData)

例如,从这个 obj 我想要一个数组 [38,35,87,63,34]。

我尝试使用 Object.values 并将其传递给数组,然后使用它,但它非常复杂,我相信它有一个捷径。功能没有成功希望帮助谢谢...

{
   "default":{
      "timelineData":[
         {
            "time":"1610323200",
            "formattedTime":"Jan 11, 2021",
            "formattedAxisTime":"Jan 11",
            "value":[
               38
            ],
            "hasData":[
               true
            ],
            "formattedValue":[
               "38"
            ]
         },
         {
            "time":"1610409600",
            "formattedTime":"Jan 12, 2021",
            "formattedAxisTime":"Jan 12",
            "value":[
               35
            ],
            "hasData":[
               true
            ],
            "formattedValue":[
               "35"
            ]
         },
         {
            "time":"1610496000",
            "formattedTime":"Jan 13, 2021",
            "formattedAxisTime":"Jan 13",
            "value":[
               87
            ],
            "hasData":[
               true
            ],
            "formattedValue":[
               "87"
            ]
         },
         {
            "time":"1610582400",
            "formattedTime":"Jan 14, 2021",
            "formattedAxisTime":"Jan 14",
            "value":[
               63
            ],
            "hasData":[
               true
            ],
            "formattedValue":[
               "63"
            ]
         },
         {
            "time":"1610668800",
            "formattedTime":"Jan 15, 2021",
            "formattedAxisTime":"Jan 15",
            "value":[
               34
            ],
            "hasData":[
               true
            ],
            "formattedValue":[
               "34"
            ]
         }
      ],
      "averages":[
         
      ]
   }
}

【问题讨论】:

标签: javascript node.js arrays algorithm data-structures


【解决方案1】:

您尝试访问的属性是Array。您可以使用Array.map 遍历元素并将返回的值同时推送到新数组中。像这样:

const values = obj.default.timelineData.map(item => item.value[0])
console.log(values); // [38, 35, 87, 63, 34]

【讨论】:

  • 也许更好的是flatMap数组的数组,并在结果中包含每个级别的所有内容,而不仅仅是第一个。 (我知道现在每个都只有一个,但谁知道是否/何时会改变?)
猜你喜欢
  • 2023-02-01
  • 2020-09-05
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
相关资源
最近更新 更多