36

let array = [1,2,3,4,5,6,7,8,9,0]

Documentation is something like this

[first, ...rest] = array will output 1 and the rest of array

Now is there a way to take only the first and the last element 1 & 0 with Destructuring

ex: [first, ...middle, last] = array

I know how to take the first and last elements the other way but I was wondering if it is possible with es6

Nicholas
  • 3,529
  • 2
  • 23
  • 31

1 Answers1

48

The rest parameter can only use at the end not anywhere else in the destructuring so it won't work as you expected.

Instead, you can destructor certain properties(an array is also an object in JS), for example, 0 for first and index of the last element for last.

let array = [1,2,3,4,5,6,7,8,9,0]

let {0 : a ,[array.length - 1] : b} = array;
console.log(a, b)

Or its better way to extract length as an another variable and get last value based on that ( suggested by @Bergi) , it would work even there is no variable which refers the array.

let {0 : a ,length : l, [l - 1] : b} = [1,2,3,4,5,6,7,8,9,0];
console.log(a, b)
Pranav C Balan
  • 113,687
  • 23
  • 165
  • 188