diff --git a/solutions/day-01/functional.js b/solutions/day-01/functional.js new file mode 100644 index 0000000..e69de29 diff --git a/solutions/day-01/functions.js b/solutions/day-01/functions.js index c593976..8c1b055 100644 --- a/solutions/day-01/functions.js +++ b/solutions/day-01/functions.js @@ -108,3 +108,109 @@ const greetings = (name = 'Derrek') => { } console.log(greetings()) console.log(greetings('Ivy')) + +const sumCallback = arr => { + let sum = 0 + const callback = function (element) { + sum += element + } + arr.forEach(callback) + return sum +} +console.log(sumCallback(numbers)) + +// further simplifying callback function usage +const sumCallback2 = arr => { + let sum = 0 + arr.forEach(function (element) { + sum+=element + }) + return sum +} +console.log('simplified callback sum: ', sumCallback2(numbers)) + +// prints hello every two seconds +function sayHello() { + console.log('Hello') +} +// setInterval(sayHello, 2000) + +// wait 10 seconds then say hello bruh +function waitHello() { + console.log('Hello Bruh') +} +setTimeout(waitHello, 10000) + +// destructuring is a way to unpack arrays, objects... assigning to a distinct variable. +//Good for writing reusable and clean code. + +for (const num of numbers) { + console.log(num) +} +for (const place of countries) { + console.log(place) +} + +const [one, two, three, four, five] = numbers +console.log(one, two, three, four, five) + +const [...numage] = numbers +console.log(...numage) + +const [alb, bol, ...rest] = countries +console.log(alb, bol, rest) +console.log(rest) + + +const rectangle = { + width: 20, + height: 10 +} +// access width like... +// let width = rectangle.width +// or +// let width = rectangle[width] + +// but with destructuring... and renaming variable names +let { width:w, height:h, perimiter = 2*w + 2*h, area =w*h} = rectangle +console.log(w, h, perimiter, area) + +const props = { + user: { + firstName: 'Derrek', + lastName: 'Gass', + age: 30 + }, + post: { + title: 'Destructuring and Spread', + subtitle: 'ES6', + year: 2020 + }, + skills: [ + 'JS', + 'React', + 'Redux', + 'Node', + 'Python', + 'Java' + ] +} +// can deconstruct one at a time like this: +// const {user, post, skills} = props +// const {firstName, lastName, age} = user +// const {title, subtitle, year} = post +// const [skillOne, skillTwo, skillThree, skillFour, skillFive] = skills + +// or all at the same time +const { + user: { firstName, lastName, age }, + post: { title, subtitle, year }, + skills:[...skill] +} = props + +const personDest = { + ...props +} +// testing to see if we can drill down to user's first name +console.log(personDest.user.firstName) +console.log(personDest) \ No newline at end of file