From bd990f5e55a5a837b466f9a75e64b55e14d022bb Mon Sep 17 00:00:00 2001 From: Olga Gulyakevich Date: Thu, 28 Nov 2024 21:58:47 +0100 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D1=82=20=D0=94=D0=97=204.16=20=D0=91=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D1=88=D0=B5=20=D0=B4=D0=B5=D1=82=D0=B0=D0=BB=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 1 + js/functions.js | 6 ++-- js/main.js | 82 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index eef40fe..0df7767 100644 --- a/index.html +++ b/index.html @@ -237,5 +237,6 @@

Не удалось загрузить данны + diff --git a/js/functions.js b/js/functions.js index d860b2e..71abcf8 100644 --- a/js/functions.js +++ b/js/functions.js @@ -18,11 +18,9 @@ const isPolindrom = (text) => { const extractDigits = (inputChar) => { - // Убирает пробелы и разбивает на символы - const nomalizedChars = inputChar.replaceAll(' ', '').split(''); + const nomalizedChars = inputChar.replaceAll(' ', '').split(''); /* Убирает пробелы и разбивает на символы */ - //Переменная для хранения цифр - let digits = ''; + let digits = ''; /* Переменная для хранения цифр */ for (const char of nomalizedChars) { if (!isNaN(char)) { diff --git a/js/main.js b/js/main.js index e69de29..696a7a8 100644 --- a/js/main.js +++ b/js/main.js @@ -0,0 +1,82 @@ +const PHOTO_DESCRIPTION_COUNT = 25; + +const NAMES = [ + 'Настя_yellow', + 'Kate', + 'Иван', + 'Маша', + 'Olly_Sunshine', + 'Женя', + 'Олег', + 'Кирилл Ivanov', + 'Alex' +]; +const DESCRIPTIONS = [ + 'Прекрасный день!', + 'Новая фотография для альбома.', + 'Делюсь своими впечатлениями.', + 'Захватывающее место!', + 'Это был незабываемый момент.', + 'Доброе утро, Мир!', + 'Всем хорошего дня и прекрасного настроения.', +]; + +const MESSAGES = [ + 'Всё отлично!', + 'В целом всё неплохо. Но не всё.', + 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально', + 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', + 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', + 'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!' +]; + +// Генерация уникального ID +const getIdGenerator = () => { + let id = 0; + return function () { + id ++; + return id; + }; +}; + +const photoId = getIdGenerator(); +const commentId = getIdGenerator(); + +// Генерация случайного числа в диапазоне +const getRandomInteger = (a, b) => { + const lower = Math.ceil(Math.min(a, b)); + const upper = Math.floor(Math.max(a, b)); + const result = Math.random() * (upper - lower + 1) + lower; + return Math.floor(result); +}; + +const likesCount = getRandomInteger(15, 200); + +// Получение случайного элемента массива +const getRandomArrayElement = (elements) => elements[getRandomInteger(0, elements.length - 1)]; + +// Генерация одного комментария +const generateComment = () => ({ + id: commentId(), + avatar: `img/avatar-${getRandomInteger(1, 6)}.svg`, + message: `${getRandomArrayElement(MESSAGES)}`, + name: `${getRandomArrayElement(NAMES)}`, +}); + +// Генерация массива комментариев +const generateComments = () => { + const commentsCount = getRandomInteger(0, 30); + return Array.from({length: commentsCount}, generateComment); +}; + +// Генерация одного описания фотографии +const generatePhotoDescription = () => ({ + id: photoId(), + url: `photos/${photoId()}.jpg`, + description: `${getRandomArrayElement(DESCRIPTIONS)}`, + likes: likesCount, + comments: generateComments(), +}); + +// Генерация массива описаний фотографий +const photoDescriptions = Array.from({length: PHOTO_DESCRIPTION_COUNT}, generatePhotoDescription);