-
Notifications
You must be signed in to change notification settings - Fork 0
/
14-destructuring.js
69 lines (51 loc) · 1.37 KB
/
14-destructuring.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// a simple object
var expense = {
type: 'Buisiness',
amount: 45
}
// The ES5 way of pulling vars from an object
var type = expense.type;
var amount = expense.amount;
// the ES6 way of pulling vars from an object
const { type, amount } = expense;
// another object
const savedFile = {
extension: 'jpg',
name: 'repost',
size: 14040
}
// the ES5 way of destructuring
function fileSummary(file) {
return `The file ${file.name}.${file.extension} is of size ${file.size}`;
}
fileSummary(savedFile); // The file repost.jpg is of size 14040
// the ES6 way
function fileSummaryDestruct({ name, extension, size }) {
return `The file ${name}.${extension} is of size ${size}`;
}
fileSummaryDestruct(savedFile); // The file repost.jpg is of size 14040
// a simple array
const companies = [
'Google',
'Facebook',
'Uber'
];
// arrays can be destructured as well
const [name, name2, name3, name4] = companies;
name; // Google
name2; // Facebook
name3; // Uber
name4 // undefined
// destructuring with the rest operator
const [name, name2, ...rest] = companies;
name; // Google
name2; // Facebook
rest; // ['Uber']
// mixing array and object destructuring
const comapnies = [
{ name: 'Google', location: 'Mountain View' },
{ name: 'Facebook', location: 'Menlo Park' },
{ name: 'User', location: 'San Francisco' },
];
const [{ location }] = companies;
location; // Mountain View