Skip to content

Commit 71f00ed

Browse files
homework-8
1 parent 4d214de commit 71f00ed

File tree

3 files changed

+108
-1
lines changed

3 files changed

+108
-1
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ function methodCounter(obj, name, num, fn) {
9393
return `ERROR ! add more methods`
9494
}
9595
obj.addCounter = function(newNum, name){
96-
// newName = name;
9796
counter = newNum;
9897
return [counter, name];
9998
}
@@ -122,7 +121,11 @@ console.log(jun.logger(5, 5, 5, 5)); // 1, 20
122121
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
123122
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
124123
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
124+
console.log(jun.addCounter(1, 'addCounter'));
125125
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
126+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
127+
console.log(jun.logger(5, 5, 5, 5)); // 1, 20
128+
126129

127130
// @SUPER,
128131

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: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
'use strict';
2+
3+
/*
4+
*
5+
* TASK 1
6+
*
7+
* Создайте функцию которая будет запоминать переданные
8+
* ей аргументы, и прибавлять их в строку
9+
* и отображать в консоле всю строку
10+
*
11+
*
12+
* */
13+
14+
function solution1() {
15+
let str = '';
16+
return function(text){
17+
return str += text
18+
}
19+
20+
}
21+
22+
let stringBuffer = solution1();
23+
24+
console.log(stringBuffer('Замыкания')); // Замыкания
25+
console.log(stringBuffer('Использовать нужно')); // Замыкания Использовать нужно
26+
console.log(stringBuffer('Привет')); // Замыкания Использовать нужно Привет вызываем много раз
27+
28+
/*
29+
*
30+
* TASK 2
31+
* Напишите функцию которая принимает в качестве аргумента строку
32+
* из скобочек и посчитайте, * что все скобочки закрываются корректно
33+
*
34+
* */
35+
36+
function validBraces(str) {
37+
let stack = [];
38+
for(let i=0;i<str.length;i++){
39+
if(str[i] == "(" || str[i] == "{" || str[i] == "[")
40+
stack.push(str[i]);
41+
else if(str[i] == ")") {
42+
if(stack.pop() != "(") {
43+
return false;
44+
}
45+
}
46+
else if(str[i] == "}") {
47+
if(stack.pop() != "{") {
48+
return false;
49+
}
50+
}
51+
else if(str[i] == "]") {
52+
if(stack.pop() != "[") {
53+
return false;
54+
}
55+
}
56+
}
57+
58+
return !stack.length;
59+
}
60+
61+
62+
console.log(validBraces('(){}[]')); // => returns true
63+
console.log(validBraces('(}')); // => returns false
64+
console.log(validBraces('[(])')); // => returns false
65+
console.log(validBraces('([{}])')); // => returns true
66+
console.log(validBraces('({[]})')); // => returns true
67+
68+
// @SUPER
69+
70+
/*
71+
*
72+
* Напишите функцию которая будет принимать одно число и выводить сумму
73+
* всех натуральных чисел
74+
* sum(5) // 5+4+3+2+1
75+
*
76+
* Вычисления должны кешироваться, если в функцию попадает закешированное
77+
* значение, в консоле должно отобразиться
78+
* Значение взято из кэша
79+
*
80+
* Нельзя использовать внешние значения/переменные/функции
81+
*
82+
* */
83+
84+
function sum(num) {
85+
if( num!= 1){
86+
return num + sum(num-1)
87+
}
88+
return 1
89+
}
90+
console.log(sum(5)); // 15 Значение кешировано
91+
sum(5); // 15 Значение взято из кэш
92+
93+
sum(6); // 21 Кешировано
94+
sum(6); // 21 Значение взято из кэша

0 commit comments

Comments
 (0)