From 762191793a033cdc26688edc396032a90d864e1f Mon Sep 17 00:00:00 2001 From: Vitali3207 Date: Wed, 4 Mar 2026 15:13:34 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=A7=D0=B5=D1=82=D0=B2=D1=91=D1=80=D1=82?= =?UTF-8?q?=D0=BE=D0=B5=20=D0=94=D0=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/main.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/js/main.js b/js/main.js index 7cb7c48..97a369f 100644 --- a/js/main.js +++ b/js/main.js @@ -10,7 +10,7 @@ const NAMES = [ 'Ева' ]; -const DESCRIPTION = [ +const DESCRIPTIONS = [ 'Замечательное фото', 'Отличный ракурс', 'Классная идея', @@ -28,8 +28,10 @@ const MESSAGES = [ 'В конце концов это просто непрофессионально.', 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', - 'Лица у людей на фотке перекошены, как будто их избивают., Как можно было поймать такой неудачный момент?!']; + 'Лица у людей на фотке перекошены, как будто их избивают., Как можно было поймать такой неудачный момент?!' +]; +const PHOTO_COUNT = 25; const getRandomInteger = (min, max) => { min = Math.ceil(min); @@ -50,8 +52,6 @@ const generatePhotoId = createIdGenirator(); const generateCommentsId = createIdGenirator(); const generateUrl = createIdGenirator(); -const PHOTO_COUNT = 25; - const createComentsPhoto = () => ({ id: generateCommentsId(), avatar: `img/avatar-${getRandomInteger(1, 6)}.svg`, @@ -59,13 +59,15 @@ const createComentsPhoto = () => ({ name: getRandomArrayElement(NAMES) }); -const createFotoDescription = () => ({ +const createPhoto = () => ({ id: generatePhotoId(1, 25), url: `photos/${generateUrl(1, 25)}.jpg`, - description: getRandomArrayElement(DESCRIPTION), + description: getRandomArrayElement(DESCRIPTIONS), likes: getRandomInteger(15, 200), comments: Array.from({ length: getRandomInteger(0, 30) }, createComentsPhoto) }); -const photoObject = Array.from({ length: PHOTO_COUNT }, createFotoDescription); +const generatePhotos = Array.from({ length: PHOTO_COUNT }, createPhoto); + +export { generatePhotos }; From 14cbbed1f99a70949aa2d201a0f64e6f16db472e Mon Sep 17 00:00:00 2001 From: Vitali3207 Date: Wed, 11 Mar 2026 18:15:03 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/main.js b/js/main.js index 97a369f..902b884 100644 --- a/js/main.js +++ b/js/main.js @@ -67,7 +67,7 @@ const createPhoto = () => ({ comments: Array.from({ length: getRandomInteger(0, 30) }, createComentsPhoto) }); -const generatePhotos = Array.from({ length: PHOTO_COUNT }, createPhoto); +const generatePhotos = () => Array.from({ length: PHOTO_COUNT }, createPhoto); export { generatePhotos }; From 023b2cbe8833d2fa4c43497b12ec68fac1662c25 Mon Sep 17 00:00:00 2001 From: Vitali3207 Date: Wed, 11 Mar 2026 20:25:18 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=9F=D1=8F=D1=82=D0=BE=D0=B5=20=D0=94?= =?UTF-8?q?=D0=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 2 +- js/generator.js | 65 ++++++++++++++++++++++++++++++++++++++++++ js/main.js | 75 ++----------------------------------------------- js/util.js | 10 +++++++ 4 files changed, 79 insertions(+), 73 deletions(-) create mode 100644 js/generator.js create mode 100644 js/util.js diff --git a/index.html b/index.html index 5b3ca3b..b97672a 100644 --- a/index.html +++ b/index.html @@ -235,7 +235,7 @@

Не удалось загрузить данны - + diff --git a/js/generator.js b/js/generator.js new file mode 100644 index 0000000..6eb94f2 --- /dev/null +++ b/js/generator.js @@ -0,0 +1,65 @@ +import { getRandomInteger, getRandomArrayElement } from './util.js'; + +const NAMES = [ + 'Владимир', + 'Генадий', + 'Олег', + 'Виталий', + 'Максим', + 'Наталья', + 'Светлана', + 'Ольга', + 'Ева' +]; + +const DESCRIPTIONS = [ + 'Замечательное фото', + 'Отличный ракурс', + 'Классная идея', + 'Красивое фото', + 'Это фото заслуживае отдельного внимания', + 'Можно сразу на обложку журнала', + 'У тебя определённо талант!!!' +]; + +const MESSAGES = [ + 'Всё отлично!', + 'В целом всё неплохо.', + 'Но не всё.', + 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра.', + 'В конце концов это просто непрофессионально.', + 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', + 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', + 'Лица у людей на фотке перекошены, как будто их избивают., Как можно было поймать такой неудачный момент?!' +]; + +const PHOTO_COUNT = 25; + +const createIdGenirator = () => { + let currentId = 0; + + return () => ++currentId; +}; + +const generatePhotoId = createIdGenirator(); +const generateCommentsId = createIdGenirator(); +const generateUrl = createIdGenirator(); + +const createComentsPhoto = () => ({ + id: generateCommentsId(), + avatar: `img/avatar-${getRandomInteger(1, 6)}.svg`, + message: getRandomArrayElement(MESSAGES), + name: getRandomArrayElement(NAMES) +}); + +const createPhoto = () => ({ + id: generatePhotoId(1, 25), + url: `photos/${generateUrl(1, 25)}.jpg`, + description: getRandomArrayElement(DESCRIPTIONS), + likes: getRandomInteger(15, 200), + comments: Array.from({ length: getRandomInteger(0, 30) }, createComentsPhoto) +}); + +const generatePhotos = () => Array.from({ length: PHOTO_COUNT }, createPhoto); + +export { generatePhotos }; diff --git a/js/main.js b/js/main.js index 902b884..755ba2a 100644 --- a/js/main.js +++ b/js/main.js @@ -1,73 +1,4 @@ -const NAMES = [ - 'Владимир', - 'Генадий', - 'Олег', - 'Виталий', - 'Максим', - 'Наталья', - 'Светлана', - 'Ольга', - 'Ева' -]; - -const DESCRIPTIONS = [ - 'Замечательное фото', - 'Отличный ракурс', - 'Классная идея', - 'Красивое фото', - 'Это фото заслуживае отдельного внимания', - 'Можно сразу на обложку журнала', - 'У тебя определённо талант!!!' -]; - -const MESSAGES = [ - 'Всё отлично!', - 'В целом всё неплохо.', - 'Но не всё.', - 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра.', - 'В конце концов это просто непрофессионально.', - 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', - 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', - 'Лица у людей на фотке перекошены, как будто их избивают., Как можно было поймать такой неудачный момент?!' -]; - -const PHOTO_COUNT = 25; - -const getRandomInteger = (min, max) => { - min = Math.ceil(min); - max = Math.floor(max); - - return Math.floor(Math.random() * (max - min + 1) + min); -}; - -const getRandomArrayElement = (elements) => elements[getRandomInteger(0, elements.length - 1)]; - -const createIdGenirator = () => { - let currentId = 0; - - return () => ++currentId; -}; - -const generatePhotoId = createIdGenirator(); -const generateCommentsId = createIdGenirator(); -const generateUrl = createIdGenirator(); - -const createComentsPhoto = () => ({ - id: generateCommentsId(), - avatar: `img/avatar-${getRandomInteger(1, 6)}.svg`, - message: getRandomArrayElement(MESSAGES), - name: getRandomArrayElement(NAMES) -}); - -const createPhoto = () => ({ - id: generatePhotoId(1, 25), - url: `photos/${generateUrl(1, 25)}.jpg`, - description: getRandomArrayElement(DESCRIPTIONS), - likes: getRandomInteger(15, 200), - comments: Array.from({ length: getRandomInteger(0, 30) }, createComentsPhoto) -}); - -const generatePhotos = () => Array.from({ length: PHOTO_COUNT }, createPhoto); - -export { generatePhotos }; +import { generatePhotos } from './generator.js'; +import './util.js'; +console.log(generatePhotos()); diff --git a/js/util.js b/js/util.js new file mode 100644 index 0000000..0c91cc4 --- /dev/null +++ b/js/util.js @@ -0,0 +1,10 @@ +const getRandomInteger = (min, max) => { + min = Math.ceil(min); + max = Math.floor(max); + + return Math.floor(Math.random() * (max - min + 1) + min); +}; + +const getRandomArrayElement = (elements) => elements[getRandomInteger(0, elements.length - 1)]; + +export { getRandomInteger, getRandomArrayElement }; From 937af4e7041932b0fa8fadd110f8b87e220b610f Mon Sep 17 00:00:00 2001 From: Vitali3207 Date: Wed, 11 Mar 2026 23:24:57 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=B4=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=B7=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D1=87=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/functions.js | 49 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/js/functions.js b/js/functions.js index 0c65ecb..2d26c1f 100644 --- a/js/functions.js +++ b/js/functions.js @@ -1,30 +1,47 @@ // Функция для проверки длины строки. -const checkStringLength = (string, maxLength) => string.length <= maxLength; +// const checkStringLength = (string, maxLength) => string.length <= maxLength; -checkStringLength(); +// checkStringLength(); // Функция для проверки, является ли строка палиндромом. -const isPalindrom = (string) => { - const optimizedString = string.replaceAll(' ', '').toLowerCase(); - let newString = ''; +// const isPalindrom = (string) => { +// const optimizedString = string.replaceAll(' ', '').toLowerCase(); +// let newString = ''; - for (let i = optimizedString.length - 1; i >= 0; i--) { - newString += optimizedString[i]; - } +// for (let i = optimizedString.length - 1; i >= 0; i--) { +// newString += optimizedString[i]; +// } - return newString === optimizedString; -}; +// return newString === optimizedString; +// }; -isPalindrom(); +// isPalindrom(); -const getNumber = (string) => { - const numberString = string.toString().replace(/\D/g, ''); +// const getNumber = (string) => { +// const numberString = string.toString().replace(/\D/g, ''); + +// return parseInt(numberString, 10); +// }; + +// getNumber(); - return parseInt(numberString, 10); -}; -getNumber(); +// Функция из Доп.задания пятого раздела ДЗ. + +const timeWorking = (timeStart, timeStop, timeMeet, duration) => { + let start = timeStart.split(':'); + start = (parseInt(start[0], 10) * 60) + parseInt(start[1], 10); + let end = timeStop.split(':'); + end = (parseInt(end[0], 10) * 60) + parseInt(end[1], 10); + let meet = timeMeet.split(':'); + meet = (parseInt(meet[0], 10) * 60) + parseInt(meet[1], 10); + + return !!(start <= meet + duration && meet + duration <= end); + +}; +console.log(timeWorking('8:00', '17:30', '14:00', 211)); +// Алексей подскажи как тут лучше всего сделать рефакторинг? From 642f19de1120b876075b2116d834f404c0e71cf2 Mon Sep 17 00:00:00 2001 From: Vitali3207 Date: Wed, 11 Mar 2026 23:26:44 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=B4=D0=BE=D0=BF.=20=D0=B7=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D1=87=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/functions.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/js/functions.js b/js/functions.js index 2d26c1f..99a3f83 100644 --- a/js/functions.js +++ b/js/functions.js @@ -34,8 +34,10 @@ const timeWorking = (timeStart, timeStop, timeMeet, duration) => { let start = timeStart.split(':'); start = (parseInt(start[0], 10) * 60) + parseInt(start[1], 10); + let end = timeStop.split(':'); end = (parseInt(end[0], 10) * 60) + parseInt(end[1], 10); + let meet = timeMeet.split(':'); meet = (parseInt(meet[0], 10) * 60) + parseInt(meet[1], 10);