-
Notifications
You must be signed in to change notification settings - Fork 9
/
03-29-19.js
121 lines (89 loc) · 3.22 KB
/
03-29-19.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
'use strict';
/*
************************************
WARMUP DAILY
************************************
************************************
ARRAYS
************************************
1. Create an array of numbers, 1 through 10
2. Write a function, called forLoop that takes an array as a parameter, runs the array through a for(...) loop and does a console.log() of each element.
3. Write a function, called whileLoop that takes an array as a parameter, runs the array through a while(...) loop and does a console.log() of each element.
4. Implement .map(), .filter(), .reduce() as regular javascript functions that take in an array as a parameter, but do the same things as the real functions.
*/
let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// For Loop
function forLoop(arr) {
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
};
// forLoop(nums); //?
// While Loop
function whileLoop(arr) {
let i = 0;
while (i < arr.length) {
console.log(arr[i]); i++;
}
}
// whileLoop(nums); //?
// .Map
function map(arr, cb) {
let newArr = [];
for (let i = 0; i < arr.length; i++) {
newArr.push(cb(arr[i]))
}
return newArr;
}
// map(nums, (num => num += 1)); //?
// .Filter
function filter(arr, cb) {
let newArr = [];
for (let i = 0; i < arr.length; i++) {
if (cb(arr[i])) newArr.push(arr[i])
}
return newArr;
}
// filter(nums, (num => (num %2))); //?
// .Reduce
function reduce(arr, cb, initAcc) {
let acc = initAcc;
for (let i = 0; i < arr.length; i++) {
acc = cb(acc, arr[i], i);
}
return acc;
}
// reduce(nums, ((acc, val, idx) => {
// acc.push([val, idx]);
// return acc;
// }), []) //?
/*
************************************
OBJECTS
************************************
1. Begin with the starter code below
2. Using spread and destructuring assignment, create a new array called newPeople', which is a copy of the people` array, with a person named ‘Odie’ added to the beginning and one named ‘Garfield’ added to the end.
3. Using spread and destructuring assignment, create a new object called newStuff', which is a copy of the stuff object, with a new car added to the end of the cars` array within it
4. Create a state object with keys of people and stuff that contain the people and stuff data.
5. Do this using object destructuring assignment
6. Using spread and destructuring assignments, create a new object called newSate, repeating the newPeople and newStuff steps above but directly within the people and stuff nodes of the state object (don’t just spread in newPeople and newStuff)
7. Prove that the original people, stuff, and state are unchanged.
*/
const people = ['Kookla', 'Fran', 'Ollie'];
const stuff = {
tv: 'huge',
radio: 'old',
toothbrush: 'frayed',
cars: ['Toyota', 'Mazda']
}
let state = { people: people, stuff: stuff }; //?
let newPeople = ['Odie', ...people, 'Garfield']; //?
const newStuff = {...stuff, cars: [...stuff.cars, 'Subaru']}; //?
let newState = {
people: ['Odie', ...state.people, 'Garfield'],
stuff: {...state.stuff, cars: [...stuff.cars, 'Subaru']}
}; //?
//*******************************
// Canvas Submission
//*******************************
// Submit a link to a PR from that branch to your master for review