-1
votes

JavaScript Comment transformer les données des objets JSON en une seule matrice de clés dans ES6

Une donnée que je reçois d'une API comme ceci: xxx

Je veux obtenir toutes les clés pour les jours (lundi-dimanche) et les transformer en une seule matrice, quelque chose comme Ceci: xxx

est-il possible de le faire en es6? merci:]


0 commentaires

6 Réponses :


0
votes

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])


0 commentaires

0
votes

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]


0 commentaires

2
votes

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)


0 commentaires

0
votes

Si vous avez besoin de le faire de manière dynamique.

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


0 commentaires

0
votes

ES6 Way

Vous pouvez également utiliser objet.values ​​ code> mais ce n'est pas une partie ES6, il est inclus dans ES8 8ème édition objet.values ​​ P >

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)


0 commentaires

2
votes

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);


0 commentaires