# Array Destructing

Let's say we have an array that contains five numbers, like this:

```javascript
let array1 = [1, 2, 3, 4, 5]
```

To get the elements from the array, we can do something like getting the number according to its indexes:

```javascript
array1[0];
array1[1];
array1[2];
array1[3];
array1[4];
```

But this method is old and clunky, and there is a better way to do it – using array destructuring. It looks like this:

```javascript
let [ indexOne, indexTwo, indexThree, indexFour, indexFive ] = array1;
```

Both methods above will yield the same result:

Now, we have five elements in the array, and we print those.  But what if we want to skip one element in between?

Now, we have five elements in the array, and we print those.  But What if we want to skip one element in between?

```javascript
let [ indexOne, indexTwo, , indexFour, indexFive ] = array1;

console.log(indexOne);
console.log(indexTwo)
console.log(indexFour)
console.log(indexFive)
```

It will print :-

1  
2  
4  
5

You can see that we are not getting the third element because we have set it as empty.

## **What is Object Destructuring in JavaScript?**

```javascript
let object = {
    name: "Nishant",
    age: 24, 
    salary: 200,
    height: '20 meters',
    weight: '70 KG'
}
```

Let's say we want the name, salary, and weight from this object to be printed out in the console.

```javascript
console.log(object.name)
console.log(object.salary)
console.log(object.weight)
```

We can get them using the keys, which are name, salary, and weight.

But this code becomes difficult to understand sometimes. That's when destructuring comes in handy:

```javascript
let { name, salary, weight } = object;

console.log(name)
console.log(salary)
console.log(weight)
```

To correct that issue, we can set default values when we are destructuring the object.

```javascript
let object = {
    name: "Nishant",
    age: 24, 
    height: '20 meters',
    weight: '70 KG'
}

let { name, salary = 200, weight } = object;

console.log(name)
console.log(salary)
console.log(weight)
```

## **How to Use Object Destructuring with Functions**

Let's say we have a function that prints all the data in the array to the console.

```javascript
let object = {
    name: "Nishant",
    age: 24, 
    salary: 300,
    height: '20 meters',
    weight: '70 KG'
}

function printData(){
    
}

printData(object)
```

We are passing the object as a parameter in the function when it gets called:

```javascript
let object = {
    name: "Nishant",
    age: 24, 
    salary: 300,
    height: '20 meters',
    weight: '70 KG'
}

function printData(object){
    console.log(object)
}

printData(object)
```

But again, we can do the same using destructuring.

```javascript
let object = {
    name: "Nishant",
    age: 24, 
    salary: 300,
    height: '20 meters',
    weight: '70 KG'
}

function printData({name, age, salary, height, weight}){
    console.log(name, age, salary, height, weight)
}

printData(object)
```

Here, we are destructuring the object into name, age, salary, height and weight in the function parameters and we print everything on the same line.
