-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
110 lines (68 loc) · 2.96 KB
/
main.js
File metadata and controls
110 lines (68 loc) · 2.96 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
//------------------- Assignment 1 -------------------
let setOfNumbers = new Set([10]);
setOfNumbers.add(20).add(setOfNumbers.size);
console.log(setOfNumbers); // Set(3) {10, 20, 2}
console.log([...setOfNumbers][setOfNumbers.size - 1]); // 2
console.log("");
//------------------- Assignment 2 -------------------
let myFriends = ["Osama", "Ahmed", "Sayed", "Sayed", "Mahmoud", "Osama"];
console.log([...new Set(myFriends)].sort()); // (4) ['Ahmed', 'Mahmoud', 'Osama', 'Sayed']
console.log("");
//------------------- Assignment 3 -------------------
let myInfo = {
username: "Osama",
role: "Admin",
country: "Egypt",
};
let myMap = new Map(Object.entries(myInfo));
console.log(myMap); // Map(3) {'username' => 'Osama', 'role' => 'Admin', 'country' => 'Egypt'}
console.log(myMap.size); // 3
console.log(myMap.has("role")); // true
console.log("");
//------------------- Assignment 4 -------------------
let theNumber = 100020003000;
console.log(+[...new Set(theNumber.toString())].sort().join("")); // 123
console.log("");
//------------------- Assignment 5 -------------------
let theName = "Elzero";
console.log(Array.from(theName)); // (6) ['E', 'l', 'z', 'e', 'r', 'o']
console.log([...theName]); // (6) ['E', 'l', 'z', 'e', 'r', 'o']
console.log(theName.split("")); // (6) ['E', 'l', 'z', 'e', 'r', 'o']
console.log([...new Set(theName)]); // (6) ['E', 'l', 'z', 'e', 'r', 'o']
let arr = [];
for (let i = 0; i < theName.length; i++) arr.push(theName[i]);
console.log(arr); // (6) ['E', 'l', 'z', 'e', 'r', 'o']
// Additional Method
console.log(Object.assign([], theName)); // (6) ['E', 'l', 'z', 'e', 'r', 'o']
console.log("");
//------------------- Assignment 6 -------------------
let chars = ["A", "B", "C", "D", "E", 10, 15, 6];
// let chars = ["A", "B", "C", 20, "D", "E", 10, 15, 6];
// let chars = ["Z", "Y", "A", "D", "E", 10, 1];
let charsArray = chars.filter((e) => isNaN(e));
let numsArray = chars.filter((e) => !isNaN(e));
let newArray = [...numsArray, ...charsArray];
newArray.copyWithin(0, numsArray.length, numsArray.length * 2);
console.log(newArray);
// // Needed Output
// ['A', 'B', 'C', 'A', 'B', 'C', 'D', 'E']
// ['A', 'B', 'C', 'D', 'A', 'B', 'C', 'D', 'E']
// ["Z", "Y", "Z", "Y", "A", "D", "E"]
console.log("");
//------------------- Assignment 7 -------------------
let numsOne = [1, 2, 3];
let numsTwo = [4, 5, 6];
console.log([...numsOne, ...numsTwo]); // [1, 2, 3, 4, 5, 6]
console.log(numsOne.concat(numsTwo)); // [1, 2, 3, 4, 5, 6]
numsOne.push(...numsTwo);
console.log(numsOne); // [1, 2, 3, 4, 5, 6]
console.log("");
//------------------- Assignment 8 -------------------
let n1 = [10, 30, 10, 20];
let n2 = [30, 20, 10];
// Solution
console.log([...n1, ...n2].length * new Set(n2).size * Math.min(...n2)); // 210
// Another Simple Solution Without using Set
console.log([...n1, ...n2].length * Math.max(...n2)); // 210
// Another Solution Without using Math Object
console.log([...n1, ...n2].length * new Set(n2).values().next().value); // 210