Repository navigation
Expand file tree
/
Copy pathscript.js
More file actions
116 lines (100 loc) · 5.03 KB
/
Copy pathscript.js
File metadata and controls
116 lines (100 loc) · 5.03 KB
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
// NOTE: You can only use the (reduce) array method to solve this exercise:
function countAllPeople() {
let numberOfpeople = got.houses.reduce((acc,cv) => {
acc = acc + cv.people.length;
return acc;
}, 0);
return numberOfpeople;
}
function peopleByHouses() {
let housesPeople = got.houses.reduce((acc, cv) => {
acc[cv.name] = cv.people.length;
return acc;
},{});
return housesPeople;
}
function everyone() {
let allPeople = got.houses.reduce((acc, cv) => {
acc = acc.concat(cv.people.map(elemt => elemt.name));
return acc;
},[]);
return allPeople;
}
function nameWithS() {
let nameWithS = got.houses.reduce((acc, cv) => {
cv.people.filter(element => {
if (element.name.toLowerCase().includes("s")) {
return acc.push(element.name);
}
});
return acc;
}, []);
return nameWithS;
}
function nameWithA() {
let nameWithA = got.houses.reduce((acc, cv) => {
cv.people.filter(element => {
if (element.name.toLowerCase().includes("a")) {
return acc.push(element.name);
}
});
return acc;
}, []);
return nameWithA;
}
function surnameWithS() {
let surnameWithS = got.houses.reduce((acc, cv) => {
cv.people.filter(element => {
if (element.name.includes(" S")) {
return acc.push(element.name);
}
});
return acc;
}, []);
return surnameWithS;
}
function surnameWithA() {
let surnameWithA = got.houses.reduce((acc, cv) => {
cv.people.filter(element => {
if (element.name.includes(" A")) {
return acc.push(element.name);
}
});
return acc;
}, []);
return surnameWithA;
}
function peopleNameOfAllHouses() {
let peopleNameOfAllHouses = got.houses.reduce((acc, cv) => {
acc[cv.name] = cv.people.reduce((a, b) => {
a.push(b.name);
return a;
}, []);
return acc;
}, {});
return peopleNameOfAllHouses;
}
// Testing your result after writing your function
console.log(countAllPeople());
// Output should be 33
console.log(peopleByHouses());
// Output should be
//{Arryns: 1, Baratheons: 6, Dothrakis: 1, Freys: 1, Greyjoys: 3, Lannisters: 4,Redwyne: 1,Starks: 8,Targaryens: 2,Tullys: 4,Tyrells: 2}
console.log(everyone());
// Output should be
//["Eddard "Ned" Stark", "Benjen Stark", "Robb Stark", "Sansa Stark", "Arya Stark", "Brandon "Bran" Stark", "Rickon Stark", "Jon Snow", "Tywin Lannister", "Tyrion Lannister", "Jaime Lannister", "Queen Cersei (Lannister) Baratheon", "King Robert Baratheon", "Stannis Baratheon", "Renly Baratheon", "Joffrey Baratheon", "Tommen Baratheon", "Myrcella Baratheon", "Daenerys Targaryen", "Viserys Targaryen", "Balon Greyjoy", "Theon Greyjoy", "Yara Greyjoy", "Margaery (Tyrell) Baratheon", "Loras Tyrell", "Catelyn (Tully) Stark", "Lysa (Tully) Arryn", "Edmure Tully", "Brynden Tully", "Olenna (Redwyne) Tyrell", "Walder Frey", "Jon Arryn", "Khal Drogo"]
console.log(nameWithS(), 'with s');
// Output should be
// ["Eddard "Ned" Stark", "Benjen Stark", "Robb Stark", "Sansa Stark", "Arya Stark", "Brandon "Bran" Stark", "Rickon Stark", "Jon Snow", "Tywin Lannister", "Tyrion Lannister", "Jaime Lannister", "Queen Cersei (Lannister) Baratheon", "Stannis Baratheon", "Daenerys Targaryen", "Viserys Targaryen", "Loras Tyrell", "Catelyn (Tully) Stark", "Lysa (Tully) Arryn"]
console.log(nameWithA());
// Output should be
// ["Eddard Stark", "Benjen Stark", "Robb Stark", "Sansa Stark", "Arya Stark", "Brandon Stark", "Rickon Stark", "Tywin Lannister", "Tyrion Lannister", "Jaime Lannister", "Cersei Baratheon", "Robert Baratheon", "Stannis Baratheon", "Renly Baratheon", "Joffrey Baratheon", "Tommen Baratheon", "Myrcella Baratheon", "Daenerys Targaryen", "Viserys Targaryen", "Balon Greyjoy", "Yara Greyjoy", "Margaery Baratheon", "Loras Tyrell", "Catelyn Stark", "Lysa Arryn", "Olenna Tyrell", "Walder Frey", "Jon Arryn", "Khal Drogo"]
console.log(surnameWithS(), 'surname with s');
// Output should be
// ["Eddard Stark", "Benjen Stark", "Robb Stark", "Sansa Stark", "Arya Stark", "Brandon Stark", "Rickon Stark", "Jon Snow", "Catelyn Stark"]
console.log(surnameWithA());
// Output should be
// ["Lysa Arryn", "Jon Arryn"]
console.log(peopleNameOfAllHouses());
// Output should be
// {Arryns: ["Jon Arryn"], Baratheons: ["Robert Baratheon", "Stannis Baratheon", "Renly Baratheon", "Joffrey Baratheon", "Tommen Baratheon", "Myrcella Baratheon"], Dothrakis: ["Khal Drogo"], Freys: ["Walder Frey"], Greyjoys: ["Balon Greyjoy", "Theon Greyjoy", "Yara Greyjoy"], Lannisters: ["Tywin Lannister", "Tyrion Lannister", "Jaime Lannister", "Cersei Baratheon"], Redwyne: ["Olenna Tyrell"], Starks: ["Eddard Stark", "Benjen Stark", "Robb Stark", "Sansa Stark", "Arya Stark", "Brandon Stark", "Rickon Stark", "Jon Snow"], Targaryens: ["Daenerys Targaryen", "Viserys Targaryen"], Tullys: ["Catelyn Stark", "Lysa Arryn", "Edmure Tully", "Brynden Tully"], Tyrells: ["Margaery Baratheon", "Loras Tyrell"]}