From ef69cd49b59370a50ae8e7faa10be68a373360e2 Mon Sep 17 00:00:00 2001 From: pilmeha Date: Sun, 27 Oct 2024 15:44:47 +0500 Subject: [PATCH] complite 4 task --- index.html | 1 + js/main.js | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/index.html b/index.html index 241a26e..968076e 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,7 @@ Кекстаграм + diff --git a/js/main.js b/js/main.js index e69de29..15bf348 100644 --- a/js/main.js +++ b/js/main.js @@ -0,0 +1,83 @@ +const COMMENT_MESSAGES = [ + 'Всё отлично!', + 'В целом всё неплохо. Но не всё.', + 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.', + 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', + 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', + 'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!' +]; + +const NAMES = [ + 'Иван', + 'Хуан Себастьян', + 'Мария', + 'Кристоф', + 'Виктор', + 'Юлия', + 'Люпита', + 'Вашингтон', +]; + +const MAX_ID_FOR_PHOTOS = 25; + +function createIdGenerator() { + let lastGeneratedId = 0; + + return function() { + return lastGeneratedId++; + }; +} + +function getRandomInteger(min, max) { + const lower = Math.ceil(Math.min(Math.abs(min), Math.abs(max))); + const upper = Math.floor(Math.max(Math.abs(min), Math.abs(max))); + const result = Math.random() * (upper - lower + 1) + lower; + return Math.floor(result); +} + +const getRandomArrayElement = (elements) => + elements[getRandomInteger(0, elements.length - 1)]; + +function createArrayComments(count) { + const commentsArray = []; + const generateCommentId = createIdGenerator(); + while (commentsArray.length < count) { + const comment = { + id: generateCommentId(), + avatar: `img/avatar-${getRandomInteger(1, 6)}.svg`, + message: `${getRandomArrayElement(COMMENT_MESSAGES)}`, + name: `${getRandomArrayElement(NAMES)}` + }; + + if (getRandomInteger(1, 2) === 2) { + let secondMessage = `${getRandomArrayElement(COMMENT_MESSAGES)}`; + while (comment.message === secondMessage) { + secondMessage = `${getRandomArrayElement(COMMENT_MESSAGES)}`; + } + comment.message += ` ${secondMessage}`; + } + + commentsArray.push(comment); + } + + return commentsArray; +} + +function createArrayPhotos() { + const generatePhotoId = createIdGenerator(); + const photoIdForUrl = createIdGenerator(); + const photosArray = []; + while (photosArray.length < MAX_ID_FOR_PHOTOS) { + const photo = { + id: generatePhotoId(), + url: `photos/${photoIdForUrl()}.jpg`, + description: 'Еще не придумал что здесь написать', + likes: getRandomInteger(15, 200), + comments: createArrayComments(getRandomInteger(1, 30)) + }; + photosArray.push(photo); + } + return photosArray; +} + +createArrayPhotos();