Chapter 6
Here are the solutions to the Exercises, for the Chapter 6, Literals and Destructuring chapter.
Exercise 1
| 'use strict'; |
| |
| const greet = function(name, gender) { |
| return `Hello, ${gender === Symbol.for('female') ? 'Ms.' : 'Mr.'} ${name}`; |
| }; |
| |
| console.log(greet('Sara', Symbol.for('female'))); |
| console.log(greet('Tom', Symbol.for('male'))); |
Exercise 2
| 'use strict'; |
| |
| const stripMargin = function(texts, ...expressions) { |
| const exceptLast = expressions.map(function(expression, index) { |
| return `${texts[index]}${expression.toString().toUpperCase()}`; |
| }).join(''); |
| |
| const result = `${exceptLast}${texts[texts.length - 1]}`; |
| |
| return result.replace(/[
][ s]+(w)/g, ' $1').trim(); |
| }; |
| |
| const name = 'Jane'; |
| |
| const processed = stripMargin` This is for |
| ${name} and it needs to be |
| delivered by December 24th.`; |
| |
| |
| console.log(processed); |
| |
Exercise 3
| 'use strict'; |
| |
| const beforeAndAfter = function(number) { |
| if(number < 0) return []; |
| if(number === 0) return [1]; |
| |
| return [number - 1, number + 1]; |
| }; |
| |
| let before = 0; |
| let after = 0; |
| |
| |
| [before, after] = beforeAndAfter(7); |
| console.log(`${before} and ${after}`); |
| |
| [before, after] = beforeAndAfter(9); |
| console.log(`${before} and ${after}`); |
| |
| [before, after = 0] = beforeAndAfter(0); |
| console.log(`${before} and ${after}`); |
| |
| [before = 0, after = 0] = beforeAndAfter(-1); |
| console.log(`${before} and ${after}`); |
Exercise 4
| 'use strict'; |
| |
| const purchaseItems = function(essential1, essential2, ...optionals) { |
| console.log(`${essential1}, ${essential2}, ${optionals.join(', ')}`); |
| }; |
| |
| const mustHaves = ['bread', 'milk']; |
| const also = ['eggs', 'donuts']; |
| const andAlso = ['juice', 'tea']; |
| |
| |
| |
| purchaseItems(...mustHaves, ...[...also, 'coffee', ...andAlso]); |
Exercise 5
| 'use strict'; |
| |
| const getDetails = function( |
| {name, born: { year: birthYear }, graduated: {year}}) { |
| return `${name} born in the year ${birthYear}, graduated in ${year}.`; |
| }; |
| |
| const details = |
| getDetails({name: 'Sara', |
| born: { month: 1, day: 1, year: 2000 }, |
| graduated: { month: 5, day: 31, year: 2018 }}); |
| console.log(details); |
| |
..................Content has been hidden....................
You can't read the all page of ebook, please click
here login for view all page.