94

As object keys are strings they can contain any kind of characters and special characters. I recently stumbled upon an object which I receive from an API call. This object has '-' in it's key names.

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

Destructuring does not work in this case because key-with-dash is not a valid variable name.

const { key-with-dash } = object;

So one question came to my mind. How am I supposed to destructure the object in such cases? Is it even possible at all?

larrydahooster
  • 4,114
  • 4
  • 40
  • 47

3 Answers3

140

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

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

console.log("foo", foo);
Hitmands
  • 13,491
  • 4
  • 34
  • 69
51

Just give it a valid name

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

Did you also know you can destructure with variables?

let object = { 'key-with-dash': [] }
let key = 'key-with-dash'
let {[key]:y} = object
console.log(y)
// => []
Mulan
  • 129,518
  • 31
  • 228
  • 259
-6

Hello Fellow Developers, I have found a break through this error if none of the above work.

  1. Follow this code

    <i>const anyVar = yourData["data-example"] </i>
    
  2. Hope this works for you if you have any questions please make to ask me.

P.S: I know its a old question but I faced a issue so I thought that some people may also face this. So that is why I have posted this.

TidyDev
  • 3,470
  • 9
  • 29
  • 51