|
1 | | -const checkStringLength = (string = 'str', maxLength = 1) => string.length <= maxLength; |
| 1 | +const debounce = (callback, timeoutDelay = 500) => { |
| 2 | + let timeoutId; |
2 | 3 |
|
3 | | -checkStringLength('string', 3); |
4 | | - |
5 | | -const isPalindrome = (string = '') => { |
6 | | - const newString = string.toLowerCase().replaceAll(' ', ''); |
7 | | - let result = ''; |
8 | | - |
9 | | - for(let i = newString.length - 1; i >= 0; i -= 1) { |
10 | | - const char = newString[i]; |
11 | | - result += char; |
12 | | - } |
13 | | - |
14 | | - return newString === result; |
15 | | -}; |
16 | | - |
17 | | -isPalindrome('А роза упала на лапу азора'); |
18 | | - |
19 | | -const parseStringToInt = (string) => { |
20 | | - string = string.toString(); |
21 | | - let res = ''; |
22 | | - for (let i = 0; i < string.length; i += 1) { |
23 | | - const parsed = parseInt(string[i], 10); |
24 | | - const isDigit = (!isNaN(parsed)); |
25 | | - if (isDigit) { |
26 | | - res += parsed; |
27 | | - } |
28 | | - } |
29 | | - |
30 | | - return res ? +res : NaN; |
31 | | -}; |
32 | | - |
33 | | -parseStringToInt('78 dogs'); |
34 | | - |
35 | | -export const getRandomInteger = (num1, num2) => { |
36 | | - const lower = Math.ceil(Math.min(num1, num2)); |
37 | | - const upper = Math.floor(Math.max(num1, num2)); |
38 | | - const result = Math.random() * (upper - lower + 1) + lower; |
39 | | - return Math.floor(result); |
40 | | -}; |
41 | | - |
42 | | -export const getRandomElement = (arr) => arr[getRandomInteger(0, arr.length - 1)]; |
43 | | - |
44 | | -const stringToMinutes = (string) => { |
45 | | - const [hours, minutes] = string.split(':').map((el) => parseInt(el, 10)); |
46 | | - return hours * 60 + minutes; |
47 | | -}; |
48 | | - |
49 | | -export const checkWorkingTime = (workDayStart, workDayEnd, meetingStartTime, meetingDuration) => { |
50 | | - const workStart = stringToMinutes(workDayStart); |
51 | | - const workEnd = stringToMinutes(workDayEnd); |
52 | | - const meetingStart = stringToMinutes(meetingStartTime); |
53 | | - const meetingEnd = meetingStart + meetingDuration; |
54 | | - |
55 | | - return meetingStart >= workStart && meetingEnd <= workEnd; |
| 4 | + return (...rest) => { |
| 5 | + clearTimeout(timeoutId); |
| 6 | + timeoutId = setTimeout(() => callback.apply(this, rest), timeoutDelay); |
| 7 | + }; |
56 | 8 | }; |
| 9 | +const isEscapeKey = (evt) => evt.key === 'Escape'; |
57 | 10 |
|
58 | | -export const isEscapeKey = (evt) => evt.key === 'Escape'; |
| 11 | +export { debounce, isEscapeKey }; |
0 commit comments