Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript如何将json对象中的数据从ES6中的键转换为单个数组_Javascript_Vue.js_Ecmascript 6 - Fatal编程技术网

Javascript如何将json对象中的数据从ES6中的键转换为单个数组

Javascript如何将json对象中的数据从ES6中的键转换为单个数组,javascript,vue.js,ecmascript-6,Javascript,Vue.js,Ecmascript 6,我从API获得的数据如下: { "lclWarehouseId":11, "name":"asdasd", "country":{ "id":1, "name":"Indonesia" }, "city":{ "id":1, "countryId":1, "name":"Jakarta" }, "address":"asdasd", "phone":"+62123123", "

我从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中执行此操作?谢谢:

这可能会对您有所帮助

var数组={
“lclWarehouseId”:11,
“名称”:“asdasd”,
“国家”:{
“id”:1,
“名称”:“印度尼西亚”
},
“城市”:{
“id”:1,
“countryId”:1,
“名称”:“雅加达”
},
“地址”:“asdasd”,
“电话”:“+62123123”,
“传真”:“+62123123”,
“星期一”:{
是的,
“开始”:“0000-01-01T14:43:20+07:00”,
“结束”:“0000-01-01T15:43:23+07:00”
},
“星期二”:
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期三”:
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期四”:
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期五”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期六”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期日”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
}
};
常数{星期一、星期二、星期三、星期四、星期五、星期六、星期日}=数组;

log([星期一、星期二、星期三、星期四、星期五、星期六、星期日])
我不知道为什么您需要ES6来完成此任务。 如果在名为resp的json中有响应 你可以简单地写

[resp.monday, resp.tuesday, ... resp.sunday]

这将提供所需的数组

这对我来说很有用-使用一些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)

如果您需要动态地执行此操作

Object.values(array).filter(value => typeof value === 'object' && value["start"]);
ES6路

您也可以使用
Object.values
,但它不是ES6的一部分,它包含在ES8第8版中

让a={
“lclWarehouseId”:11,
“名称”:“asdasd”,
“国家”:{
“id”:1,
“名称”:“印度尼西亚”
},
“城市”:{
“id”:1,
“countryId”:1,
“名称”:“雅加达”
},
“地址”:“asdasd”,
“电话”:“+62123123”,
“传真”:“+62123123”,
“星期一”:{
是的,
“开始”:“0000-01-01T14:43:20+07:00”,
“结束”:“0000-01-01T15:43:23+07:00”
},
“星期二”:
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期三”:
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期四”:
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期五”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期六”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期日”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
}
}
施工天数=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
设arr=[]
Object.keys(a).forEach(key=>{
如果(天,包括(关键)){
arr.push(一个[键])
}
})
console.log(arr)
首先,从对象中选择相关键(带值),然后将其转换为所需的数组

const对象={
“lclWarehouseId”:11,
“名称”:“asdasd”,
“国家”:{
“id”:1,
“名称”:“印度尼西亚”
},
“城市”:{
“id”:1,
“countryId”:1,
“名称”:“雅加达”
},
“地址”:“asdasd”,
“电话”:“+62123123”,
“传真”:“+62123123”,
“星期一”:{
是的,
“开始”:“0000-01-01T14:43:20+07:00”,
“结束”:“0000-01-01T15:43:23+07:00”
},
“星期二”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期三”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期四”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期五”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期六”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
},
“星期日”:{
“isOpen”:假,
“开始”:“0000-01-01T00:00:00Z”,
“结束”:“0000-01-01T00:00:00Z”
}
};
常量天数=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”];
常量拾取=函数(对象,允许键){
const newObject={};
allowedKeys.forEach((键)=>{
if(输入对象){
newObject[key]=对象[key];
}
});
返回newObject;
};
常量子集=拾取(对象,天);
const result=Object.keys(subset.map)((天)=>subset[day]);
控制台日志(结果)