Как деструктировать свойства объектов с именами ключей, которые являются недопустимыми именами переменных?


Поскольку ключи объектов являются строками, они могут содержать любые символы и специальные символы. Недавно я наткнулся на объект, который я получаю от вызова API. Этот объект имеет " - " в его ключевых именах.

const object = {
   "key-with-dash": []
}
Деструктурирование в этом случае не работает, так как key-with-dash не является допустимым именем переменной.
const { key-with-dash } = object;
Итак, один вопрос пришел мне в голову. Как я должен разрушать объект в таких случаях? Возможно ли это вообще?
2 33

2 ответа:

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

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

console.log("foo", foo);

Просто дайте ему правильное имя

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

Знаете ли вы также, что вы можете деструктировать с переменными?

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