Skip to content

Commit 587653b

Browse files
homework-4
1 parent d28324e commit 587653b

File tree

3 files changed

+223
-7
lines changed

3 files changed

+223
-7
lines changed

js-core/homeworks/homework-3/src/main.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ function toUpperCase(obj) {
2525
let newObj = {
2626
name: obj.name.toUpperCase()
2727
}
28-
29-
3028
return newObj
3129
}
3230
const objectWithName = { name: 'privet kak dela' };
@@ -100,8 +98,10 @@ console.log(simpleObjectGenerator('protocol', { url: '22' }, 8000));
10098
var myName = { name: 'Serg' };
10199

102100
function addNameToUser(newKey, newValue, userName) {
103-
let obj = {};
104-
obj[newKey] = newValue;
101+
let obj = {
102+
[newKey]: newValue
103+
};
104+
// obj[newKey] = newValue;
105105
if(userName.name){
106106
obj.name = userName
107107
}
@@ -159,8 +159,8 @@ function super2(arg1, arg2, arg3, callback) {
159159
let arr = [arg1, arg2 ,arg3];
160160
callback(arr);
161161
}
162-
let callArr = function(callback){
163-
console.log(callback);
162+
let callArr = function(arg){
163+
console.log(arg);
164164
}
165165

166-
super2('my', 'name', 'Serg', callArr);
166+
super2('my', 'name', 'Serg', callArr);
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!DOCTYPE html>
2+
<html lang="ru">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>test page</title>
6+
</head>
7+
<body>
8+
<script src="src/main.js"></script>
9+
</body>
10+
</html>
Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
/*
2+
* Напишите функцию которая будет принимать 1 аргумент и в зависимости от типа аргумента
3+
*
4+
* Если тип аргумента число или объект -> возвращать true
5+
* Если тип аргумента функция -> возвращать false
6+
* Если тип аргумента Строка и длина этой строки не равна 10 -> возвращать "длина вашей строки: <длина строки>
7+
* Если длина 10 -> 'you win'
8+
* */
9+
10+
11+
function returnType(arg){
12+
if(typeof arg == 'number' || typeof arg == 'object' ){
13+
return true
14+
} else if (typeof arg == 'function'){
15+
return false
16+
} else if(typeof arg == 'string'){
17+
if(arg.length == 10){
18+
return 'you win'
19+
}
20+
return `Длинна вашей строки: ${arg.length}`
21+
}
22+
}
23+
console.log(returnType(3));
24+
console.log(returnType({}));
25+
console.log(returnType(function(){}));
26+
console.log(returnType('helloworld'));
27+
console.log(returnType('hello world'));
28+
29+
30+
31+
32+
33+
// Задача в классе
34+
35+
36+
let webStore = {
37+
category: {
38+
notebook: ['Lenova', 'Asus', 'Xiaomi'],
39+
mobile:['Nokia', 'Sony', 'Apple']
40+
}
41+
};
42+
43+
let category = webStore.category;
44+
45+
for(let key in category){
46+
47+
console.log('Категория:', key);
48+
49+
for(let i = 0; i < category[key].length; i++){
50+
51+
console.log(category[key][i]);
52+
53+
}
54+
}
55+
56+
57+
58+
59+
60+
61+
/*
62+
1. Напишите функцию которая принимает 2 числа
63+
и возвращает массив содержащий числа между первым числом и вторым числом;
64+
*/
65+
66+
function numbersBetween(a, b) {
67+
let newArr = [];
68+
for(let i = a; i <= b; i++){
69+
newArr.push(i);
70+
}
71+
return newArr
72+
}
73+
74+
console.log(numbersBetween(3, 5));
75+
// 3, 4, 5
76+
77+
console.log(numbersBetween(10, 12));
78+
// 10, 11, 12
79+
80+
81+
/*
82+
2. Перепишите задачу FizzBuzz, но с использованием цикла.
83+
Расчет чисел должен идти до 100
84+
*/
85+
86+
// 1. FizzBuzz 3, 5, 3 && % 5
87+
88+
function fizzBuzz(num) {
89+
let someRes;
90+
if(num % 3 == 0 && num % 5 == 0){
91+
someRes = 'FizzBuzz';
92+
} else if (num % 3 == 0){
93+
someRes = 'Fizz';
94+
} else if(num % 5 == 0){
95+
someRes = 'Buzz';
96+
} else{
97+
someRes = num;
98+
}
99+
return someRes
100+
}
101+
function fizzBuzz100() {
102+
for(let i = 1; i <= 100; i++) {
103+
console.log(fizzBuzz(i));
104+
}
105+
}
106+
fizzBuzz100();
107+
108+
/*
109+
3. Напишите функцию которая принимает 1 аргумент - массив
110+
И возвращает новый массив содержащий типы значений переменных
111+
*/
112+
113+
let arr = [1, null, undefined, 'str', {}, [], function() {}];
114+
115+
function newArr(arr){
116+
let newArray = [];
117+
for(let i = 0; i < arr.length; i++){
118+
newArray.push( typeof arr[i]);
119+
}
120+
return newArray
121+
}
122+
123+
console.log(newArr(arr));
124+
125+
/*
126+
1. @@SUPER@@. Вам дан массив array, содержащий внутри объекты.
127+
Напишите функцию которая внутри цикла проходится по каждому элементу массива
128+
И проверяет какой тип данных содержит свойство age, если тип данных NaN,
129+
тогда добавляет данному объекту свойство unknownAge: true
130+
2. На основании нового массива, создайте новую функцию, которая вернет новый массив
131+
содержащий все объекты содержащие свойство unknownAge: true
132+
*/
133+
134+
// let array = Array.from({length: 35},
135+
// (value, index) => (index % 2 ? {age: index + 2} : {age: NaN}),
136+
// );
137+
138+
// // console.log(array);
139+
140+
141+
142+
// function solution(arg) {
143+
144+
145+
// // for(let key in arg) {
146+
// // let arrayKey = arg[key];
147+
// // if(Number.isNaN(arrayKey.age)){
148+
// // arrayKey.unknownAge = true
149+
// // }
150+
// // // console.log(arr);
151+
// // return arg
152+
// // }
153+
// }
154+
// function newArr(arg){
155+
// let newArray = [];
156+
157+
// for(let i = 0; i < arg.length; i++) {
158+
159+
// if(arg[i].unknownAge === true) {
160+
// newArray.push(arg[i]);
161+
// }
162+
// }
163+
// return newArray;
164+
// }
165+
// solution(array);
166+
167+
168+
let array = Array.from({ length: 35 },
169+
(value, index) => (index % 2 ? { age: index + 2 } : { age: NaN }),
170+
);
171+
172+
173+
function solution(arr) {
174+
for (let key in arr) {
175+
let arrKey = arr[key];
176+
if (Number.isNaN(arrKey.age)) {
177+
arrKey.unknownAge = 'true';
178+
}
179+
}
180+
return unknownAge(arr);
181+
}
182+
183+
function unknownAge(arr) {
184+
let newArr = [];
185+
for (let key in arr) {
186+
let arrKey = arr[key];
187+
if (arr[key].unknownAge) {
188+
newArr.push(arr[key]);
189+
}
190+
}
191+
return newArr;
192+
}
193+
console.log(solution(array));
194+
195+
196+
197+
198+
199+
200+
201+
202+
203+
204+
205+
206+

0 commit comments

Comments
 (0)