web-dev-qa-db-fra.com

Comment déstructurer des propriétés d'objet avec des noms de clés qui sont des noms de variables invalides?

Les clés d'objet étant des chaînes, elles peuvent contenir tout type de caractères et caractères spéciaux. Je suis récemment tombé sur un objet que je reçois d'un appel API. Cet objet a "-" dans ses noms de clés.

const object = {
   "key-with-dash": []
}

La déstructuration ne fonctionne pas dans ce cas car key-with-dash n'est pas un nom de variable valide.

const { key-with-dash } = object;

Une question m'est donc venue à l'esprit. Comment suis-je censé détruire l'objet dans de tels cas? Est-ce même possible du tout?

45
larrydahooster
const data = {
   "key-with-dash": ["BAZ"]
}

const {"key-with-dash": foo} = data;

console.log("foo", foo);
65
Hitmands

Donnez-lui juste un nom valide

let object = { 'key-with-dash': [] }
let {'key-with-dash':y} = object
console.log(y)
// => []

Saviez-vous également que vous pouvez déstructurer avec des variables?

let object = { 'key-with-dash': [] }
let key = 'key-with-dash'
let {[key]:y} = object
console.log(y)
// => []
31
user633183