首页 > 解决方案 > Javascript如何将来自json对象的数据从ES6中的键转换为单个数组

问题描述

我从这样的 API 获得的数据:

{ 
   "lclWarehouseId":11,
   "name":"asdasd",
   "country":{ 
      "id":1,
      "name":"Indonesia"
   },
   "city":{ 
      "id":1,
      "countryId":1,
      "name":"Jakarta"
   },
   "address":"asdasd",
   "phone":"+62123123",
   "fax":"+62123123",
   "monday":{ 
      "isOpen":true,
      "start":"0000-01-01T14:43:20+07:00",
      "end":"0000-01-01T15:43:23+07:00"
   },
   "tuesday":{ 
      "isOpen":false,
      "start":"0000-01-01T00:00:00Z",
      "end":"0000-01-01T00:00:00Z"
   },
   "wednesday":{ 
      "isOpen":false,
      "start":"0000-01-01T00:00:00Z",
      "end":"0000-01-01T00:00:00Z"
   },
   "thursday":{ 
      "isOpen":false,
      "start":"0000-01-01T00:00:00Z",
      "end":"0000-01-01T00:00:00Z"
   },
   "friday":{ 
      "isOpen":false,
      "start":"0000-01-01T00:00:00Z",
      "end":"0000-01-01T00:00:00Z"
   },
   "saturday":{ 
      "isOpen":false,
      "start":"0000-01-01T00:00:00Z",
      "end":"0000-01-01T00:00:00Z"
   },
   "sunday":{ 
      "isOpen":false,
      "start":"0000-01-01T00:00:00Z",
      "end":"0000-01-01T00:00:00Z"
   }
}

我想获取当天(周一至周日)的所有密钥并将它们变成一个数组,如下所示:

[ 
   { 
      "isOpen":true,
      "start":"0000-01-01T14:43:20+07:00",
      "end":"0000-01-01T14:43:20+07:00",

   },
   { 
      "isOpen":true,
      "start":"0000-01-01T14:43:20+07:00",
      "end":"0000-01-01T14:43:20+07:00",

   },
   { 
      "isOpen":true,
      "start":"0000-01-01T14:43:20+07:00",
      "end":"0000-01-01T14:43:20+07:00",

   },
   { 
      "isOpen":true,
      "start":"0000-01-01T14:43:20+07:00",
      "end":"0000-01-01T14:43:20+07:00",

   },
   { 
      "isOpen":true,
      "start":"0000-01-01T14:43:20+07:00",
      "end":"0000-01-01T14:43:20+07:00",

   },
   { 
      "isOpen":true,
      "start":"0000-01-01T14:43:20+07:00",
      "end":"0000-01-01T14:43:20+07:00",

   },

]

可以在 ES6 中实现吗?谢谢你 :]

标签: javascriptvue.jsecmascript-6

解决方案


这对我有用 - 使用一些 ES6 魔法

var data = { // your data
}

// Extract all values from JSON into an array
var arrAsKeys = Object.values(data)

// The values belonging to days will have data.start as a property
var requiredData = arrAsKeys.filter(day => day.hasOwnProperty('start'))
console.log(requiredData)

推荐阅读