DEV Community

Micah Riggan
Micah Riggan

Posted on

{Destructuring} = JavaScript

Destructuring is great for referencing pieces of objects or arrays. I find it to be very useful, and fun.

If you're writing code like

var thing = array[0];
var otherThing = array[1];


var name =;
var age = thing.age;
var height = thing.height;
var userId =;

Then you've come to the right place.

In this post I'll show some common uses of destructuring that simplify the above examples, and more.

Example 1: Destructuring Arrays

Here are some common array destructuring patterns :

  • Get the first element of an array
  • Get the first element, and the rest of the elements
  • Get the name property from the first element of the array
  • Get the name property and then assign it to a variable called firstName
  • Get the second element from the array


{ name: 'Bob' }
[ { name: 'Sam' }, { name: 'Tom' } ]
{ name: 'Sam' }

Example 2: Destructuring Objects

Here are some common object destructuring patterns

  • Get the title property of an object
  • Get the title and pages property of an object
  • Get the height property off an object, and name it bookHeight
  • Get the ISBN property, which will default to '0000000'
  • Get the title property, and everything else collected into a variable named rest


A book title
{ title: 'A book title', pages: 55 }
{ pages: 55, height: 100, weight: 2, price: 3.5 }

Example 3: Destructuring Parameters

In this example we've got some common destructuring patterns for function parameters

  • Capturing many arguments in an array
  • Getting the name property of an object
  • Getting the first element of an array, and the remainder of the array
  • Unpacking an array into a new array, with a new element at the end


[ 'Hello', 'World' ]
[ 'Second', 'Third' ]
[ 'First', 'Second' ]


If you haven't been using destructuring, you should try it out. It's a great way to boil objects down into what you need. If you've got a favorite destructure that I didn't cover, put it down in the comments

Top comments (0)