Skip to content

Commit e92d431

Browse files
authored
Merge pull request #5 from EasyCode-JavaScriptReact-v1/homework_4
homework-4
2 parents 5dce857 + 6e1b259 commit e92d431

File tree

3 files changed

+157
-7
lines changed

3 files changed

+157
-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: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
/*
2+
* Напишите функцию которая будет принимать 1 аргумент и в зависимости от типа аргумента
3+
*
4+
* Если тип аргумента число или объект -> возвращать true
5+
* Если тип аргумента функция -> возвращать false
6+
* Если тип аргумента Строка и длина этой строки не равна 10 -> возвращать "длина вашей строки: <длина строки>
7+
* Если длина 10 -> 'you win'
8+
* */
9+
function returnType(arg){
10+
if(typeof arg == 'number' || typeof arg == 'object' ){
11+
return true
12+
} else if (typeof arg == 'function'){
13+
return false
14+
} else if(typeof arg == 'string'){
15+
if(arg.length == 10){
16+
return 'you win'
17+
}
18+
return `Длинна вашей строки: ${arg.length}`
19+
}
20+
}
21+
console.log(returnType(3));
22+
console.log(returnType({}));
23+
console.log(returnType(function(){}));
24+
console.log(returnType('helloworld'));
25+
console.log(returnType('hello world'));
26+
// Задача в классе
27+
let webStore = {
28+
category: {
29+
notebook: ['Lenova', 'Asus', 'Xiaomi'],
30+
mobile:['Nokia', 'Sony', 'Apple']
31+
}
32+
};
33+
let category = webStore.category;
34+
for(let key in category){
35+
let someValue = category[key];
36+
console.log('Категория:', key);
37+
for(let i = 0; i < someValue.length; i++){
38+
console.log(someValue[i]);
39+
}
40+
}
41+
/*
42+
1. Напишите функцию которая принимает 2 числа
43+
и возвращает массив содержащий числа между первым числом и вторым числом;
44+
*/
45+
46+
function numbersBetween(a, b) {
47+
let newArr = [];
48+
for(let i = a; i <= b; i++){
49+
newArr.push(i);
50+
}
51+
return newArr
52+
}
53+
54+
console.log(numbersBetween(3, 5));
55+
// 3, 4, 5
56+
57+
console.log(numbersBetween(10, 12));
58+
// 10, 11, 12
59+
60+
61+
/*
62+
2. Перепишите задачу FizzBuzz, но с использованием цикла.
63+
Расчет чисел должен идти до 100
64+
*/
65+
66+
// 1. FizzBuzz 3, 5, 3 && % 5
67+
68+
function fizzBuzz(num) {
69+
let someRes = (num % 15 == 0) ? 'FizzBuzz' :
70+
(num % 3 == 0) ? 'Fizz' :
71+
(num % 5 == 0) ? 'Buzz' : num ;
72+
return someRes
73+
}
74+
function fizzBuzz100() {
75+
for(let i = 1; i <= 100; i++) {
76+
console.log(fizzBuzz(i));
77+
}
78+
}
79+
fizzBuzz100();
80+
81+
/*
82+
3. Напишите функцию которая принимает 1 аргумент - массив
83+
И возвращает новый массив содержащий типы значений переменных
84+
*/
85+
86+
let arr = [1, null, undefined, 'str', {}, [], function() {}];
87+
88+
function newArr(arr){
89+
let newArray = [];
90+
for(let i = 0; i < arr.length; i++){
91+
let someValue = arr[i];
92+
newArray.push( typeof someValue);
93+
}
94+
return newArray
95+
}
96+
console.log(newArr(arr));
97+
/*
98+
1. @@SUPER@@. Вам дан массив array, содержащий внутри объекты.
99+
Напишите функцию которая внутри цикла проходится по каждому элементу массива
100+
И проверяет какой тип данных содержит свойство age, если тип данных NaN,
101+
тогда добавляет данному объекту свойство unknownAge: true
102+
2. На основании нового массива, создайте новую функцию, которая вернет новый массив
103+
содержащий все объекты содержащие свойство unknownAge: true
104+
*/
105+
let array = Array.from({ length: 35 },
106+
(value, index) => (index % 2 ? { age: index + 2 } : { age: NaN }),
107+
);
108+
function solution(arr) {
109+
for (let i= 0; i < arr.length; i++) {
110+
let simpleElement = arr[i];
111+
if (isNaN(simpleElement.age)) {
112+
simpleElement.unknownAge = 'true';
113+
}
114+
}
115+
return unknownAge(arr);
116+
}
117+
function unknownAge(arr) {
118+
let newArr = [];
119+
for (let i = 0; i < arr.length; i++) {
120+
let simpleElement = arr[i];
121+
if (simpleElement.unknownAge) {
122+
newArr.push(simpleElement);
123+
}
124+
}
125+
return newArr;
126+
}
127+
console.log(solution(array));
128+
129+
130+
131+
132+
133+
134+
135+
136+
137+
138+
139+
140+

0 commit comments

Comments
 (0)