Une donnée que je reçois d'une API comme ceci: Je veux obtenir toutes les clés pour les jours (lundi-dimanche) et les transformer en une seule matrice, quelque chose comme Ceci: p> est-il possible de le faire en es6? merci:] p> p>
6 Réponses :
Ceci peut vous aider.
p> var array = {
"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"
}
};
const {monday, tuesday, wednesday, thursday, friday, saturday, sunday} = array;
console.log([monday, tuesday, wednesday, thursday, friday, saturday, sunday])
Je ne sais pas pourquoi vous auriez besoin d'ES6 pour cela. Si vous avez la réponse dans un JSON nommé REEE Vous pouvez simplement écrire
[resp.monday, resp.tuesday, ... resp.sunday]
Cela fonctionne pour moi - en utilisant une magie 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)
Si vous avez besoin de le faire de manière dynamique.
Object.values(array).filter(value => typeof value === 'object' && value["start"]);
ES6 Way
Vous pouvez également utiliser p> objet.values code> mais ce n'est pas une partie ES6, il est inclus dans ES8 8ème édition
objet.values P >
let a = {
"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"
}
}
const days = ["monday", "tuesday","wednesday", "thursday", "friday","saturday","sunday" ]
let arr = []
Object.keys(a).forEach(key => {
if(days.includes(key)){
arr.push(a[key])
}
})
console.log(arr)
Premier, Choisissez les touches pertinentes (avec des valeurs) de l'objet, puis convertissez-la en la matrice souhaitée. p> const object = {
"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"
}
};
const days = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
const pick = function(object, allowedKeys) {
const newObject = {};
allowedKeys.forEach((key) => {
if (key in object) {
newObject[key] = object[key];
}
});
return newObject;
};
const subset = pick(object, days);
const result = Object.keys(subset).map((day) => subset[day]);
console.log(result);