从对象中获取特定值并将其推送到数组中

问题描述

你好,我有一个 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,"formattedAxisTime":"Jan 12","value":[
               35
            ],"formattedValue":[
               "35"
            ]
         },{
            "time":"1610496000","formattedTime":"Jan 13,"formattedAxisTime":"Jan 13","value":[
               87
            ],"formattedValue":[
               "87"
            ]
         },{
            "time":"1610582400","formattedTime":"Jan 14,"formattedAxisTime":"Jan 14","value":[
               63
            ],"formattedValue":[
               "63"
            ]
         },{
            "time":"1610668800","formattedTime":"Jan 15,"formattedAxisTime":"Jan 15","value":[
               34
            ],"formattedValue":[
               "34"
            ]
         }
      ],"averages":[
         
      ]
   }
}

解决方法

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

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