From e1a5ca31ca2ecb029317e7be5cd97c8410b0e65e Mon Sep 17 00:00:00 2001 From: Ilya Kharlamov Date: Sat, 7 Dec 2024 07:13:43 +0300 Subject: [PATCH 1/8] =?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=D1=80=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=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 --- js/main.js | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/js/main.js b/js/main.js index e69de29..f692ce9 100644 --- a/js/main.js +++ b/js/main.js @@ -0,0 +1,135 @@ +const objectsCount = 26; +const maxCommentsCount = 30; +const avatarsCount = 6; +const maxSentencesCount = 2; + +const photoDescriptions = [ + 'Закат над океаном', 'Густой лес в тумане', 'Старая каменная башня', 'Поле с подсолнухами', + 'Заснеженные горы на рассвете', 'Уличное кафе в Париже', 'Тихий пляж с белым песком', 'Пейзаж с речкой и мостиком', + 'Яркий фейерверк ночью', 'Городская улица в дождь', 'Цветущий сад весной', 'Корабль в открытом море', + 'Тропа в осеннем лесу', 'Кошка на подоконнике', 'Ночное небо с луной', 'Живописный водопад', + 'Рынок со свежими фруктами', 'Древние руины в пустыне', 'Скала у побережья', 'Группа воздушных шаров в небе', + 'Кофе и книги на столе', 'Пастбище с коровами', 'Детский парк с аттракционами', 'Чайный домик в Японии', + 'Маяк на скалистом берегу', 'Озеро с отражением леса', 'Снежная деревня зимой', 'Песчаные дюны в пустыне', + 'Романтический мост в вечернем свете', 'Улица с цветными домами', 'Яхты в маленькой гавани', + 'Кристально чистое горное озеро', 'Поле с маковыми цветами', 'Маленькая хижина в горах', + 'Закат в тропиках', 'Стадо оленей на рассвете', 'Городской парк с фонтаном', 'Облачный горизонт над мегаполисом', + 'Гребной канал с лодками', 'Старинный замок в горах' +]; + +const messagesString = 'Всё отлично! В целом всё неплохо. Но не всё. Когда вы делаете фотографию, хорошо бы убирать ' + + 'палец из кадра. В конце концов это просто непрофессионально. Моя бабушка случайно чихнула с фотоаппаратом в руках ' + + 'и у неё получилась фотография лучше. Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у ' + + 'меня получилась фотография лучше. Лица у людей на фотке перекошены, как будто их избивают. ' + + 'Как можно было поймать такой неудачный момент?!'; + +const messages = messagesString.split('.'); + +const names = [ + 'Алексей', 'Мария', 'Иван', 'Екатерина', 'Дмитрий', 'Ольга', 'Николай', 'Анна', 'Сергей', 'Елена', 'Владимир', + 'Татьяна', 'Артур', 'Наталья', 'Павел', 'Ирина', 'Кирилл', 'Светлана', 'Максим', 'Юлия']; + +function getRandomObjects(count, getRandomInt, getUniqueVal, createNewPhotoObject, createNewCommentObject, + getRandomElement, descriptions) { + const objects = []; + const getUniqueCommentIdValue = getUniqueVal(getRandomInt, 0, Number.MAX_VALUE); + const getUniquePhotoIdValue = getUniqueVal(getRandomInt, 0, objectsCount); + const getUniqueUrlValue = getUniqueVal(getRandomInt, 0, objectsCount); + + + for (let i = 0; i < count; i++) { + const comments = []; + const commentsCount = getRandomInt(0, maxCommentsCount); + for (let j = 0; j < commentsCount; j++) { + const commentId = getUniqueCommentIdValue(); + const avatar = getRandomInt(0, avatarsCount); + const commentsList = getRandomElement(messages, getRandomInt, maxSentencesCount); + const name = getRandomElement(names, getRandomInt); + + comments.push( + createNewCommentObject( + commentId, + avatar, + commentsList.toString(), + name.toString() + ) + ); + } + + const photoId = getUniquePhotoIdValue(); + const url = getUniqueUrlValue(); + const description = descriptions[getRandomInt(0, descriptions.length)]; + const likes = getRandomInt(15, 200); + + objects.push( + createNewPhotoObject( + photoId, + url, + description, + likes, + comments + ) + ); + } + + return objects; +} + +function getUniqueValue(getRandomInt, min, max) { + const previousValues = []; + + return function () { + let currentValue = getRandomInt(min, max); + if (previousValues.length >= (max - min + 1)) { + return null; + } + while (previousValues.includes(currentValue)) { + currentValue = getRandomInteger(min, max); + } + previousValues.push(currentValue); + return currentValue; + }; +} + +function getRandomArrayElements(array, getRandomInt, maxLength = 1) { + const elements = []; + for (let i = 0; i < maxLength; i++) { + elements.push(array[getRandomInt(0, array.length)]); + } + + return elements; +} + +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); +} + +function createPhotoObject(id, url, description, likes, comments) { + const newObject = {}; + + newObject.id = id; + newObject.url = `photos/${url}.jpg`; + newObject.description = description; + newObject.likes = likes; + newObject.comments = comments; + + return newObject; +} + +function createCommentObject(id, avatar, message, name) { + const newObject = {}; + + newObject.id = id; + newObject.avatar = `img/${avatar}.jpg`; + newObject.message = message; + newObject.name = name; + + return newObject; +} + +let generatedObjects = getRandomObjects(objectsCount, getRandomInteger, getUniqueValue, createPhotoObject, createCommentObject, getRandomArrayElements, photoDescriptions); +console.log(generatedObjects); From 8491a10451588770f4bce9a0e75419105f11281d Mon Sep 17 00:00:00 2001 From: Ilya Kharlamov Date: Sat, 7 Dec 2024 07:18:04 +0300 Subject: [PATCH 2/8] =?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=D1=80=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=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 --- js/main.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/js/main.js b/js/main.js index f692ce9..5ead404 100644 --- a/js/main.js +++ b/js/main.js @@ -2,6 +2,8 @@ const objectsCount = 26; const maxCommentsCount = 30; const avatarsCount = 6; const maxSentencesCount = 2; +const minLikesCount = 15; +const maxLikesCount = 200; const photoDescriptions = [ 'Закат над океаном', 'Густой лес в тумане', 'Старая каменная башня', 'Поле с подсолнухами', @@ -59,7 +61,7 @@ function getRandomObjects(count, getRandomInt, getUniqueVal, createNewPhotoObjec const photoId = getUniquePhotoIdValue(); const url = getUniqueUrlValue(); const description = descriptions[getRandomInt(0, descriptions.length)]; - const likes = getRandomInt(15, 200); + const likes = getRandomInt(minLikesCount, maxLikesCount); objects.push( createNewPhotoObject( From 37d9796140d354aae5f1106cdb1c7c268abfa24e Mon Sep 17 00:00:00 2001 From: Ilya Kharlamov Date: Sun, 8 Dec 2024 03:57:31 +0300 Subject: [PATCH 3/8] =?UTF-8?q?=D0=92=D0=BD=D0=BE=D1=81=D0=B8=D1=82=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B2=20=D0=91=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D1=88=D0=B5=20=D0=B4=D0=B5=D1=82=D0=B0=D0=BB=D0=B5?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/main.js | 199 +++++++++++++++++++++++++++++------------------------ 1 file changed, 110 insertions(+), 89 deletions(-) diff --git a/js/main.js b/js/main.js index 5ead404..24d99bb 100644 --- a/js/main.js +++ b/js/main.js @@ -1,77 +1,106 @@ -const objectsCount = 26; -const maxCommentsCount = 30; -const avatarsCount = 6; -const maxSentencesCount = 2; -const minLikesCount = 15; -const maxLikesCount = 200; - -const photoDescriptions = [ - 'Закат над океаном', 'Густой лес в тумане', 'Старая каменная башня', 'Поле с подсолнухами', - 'Заснеженные горы на рассвете', 'Уличное кафе в Париже', 'Тихий пляж с белым песком', 'Пейзаж с речкой и мостиком', - 'Яркий фейерверк ночью', 'Городская улица в дождь', 'Цветущий сад весной', 'Корабль в открытом море', - 'Тропа в осеннем лесу', 'Кошка на подоконнике', 'Ночное небо с луной', 'Живописный водопад', - 'Рынок со свежими фруктами', 'Древние руины в пустыне', 'Скала у побережья', 'Группа воздушных шаров в небе', - 'Кофе и книги на столе', 'Пастбище с коровами', 'Детский парк с аттракционами', 'Чайный домик в Японии', - 'Маяк на скалистом берегу', 'Озеро с отражением леса', 'Снежная деревня зимой', 'Песчаные дюны в пустыне', - 'Романтический мост в вечернем свете', 'Улица с цветными домами', 'Яхты в маленькой гавани', - 'Кристально чистое горное озеро', 'Поле с маковыми цветами', 'Маленькая хижина в горах', - 'Закат в тропиках', 'Стадо оленей на рассвете', 'Городской парк с фонтаном', 'Облачный горизонт над мегаполисом', - 'Гребной канал с лодками', 'Старинный замок в горах' -]; - -const messagesString = 'Всё отлично! В целом всё неплохо. Но не всё. Когда вы делаете фотографию, хорошо бы убирать ' + - 'палец из кадра. В конце концов это просто непрофессионально. Моя бабушка случайно чихнула с фотоаппаратом в руках ' + - 'и у неё получилась фотография лучше. Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у ' + - 'меня получилась фотография лучше. Лица у людей на фотке перекошены, как будто их избивают. ' + - 'Как можно было поймать такой неудачный момент?!'; - -const messages = messagesString.split('.'); - -const names = [ - 'Алексей', 'Мария', 'Иван', 'Екатерина', 'Дмитрий', 'Ольга', 'Николай', 'Анна', 'Сергей', 'Елена', 'Владимир', - 'Татьяна', 'Артур', 'Наталья', 'Павел', 'Ирина', 'Кирилл', 'Светлана', 'Максим', 'Юлия']; - -function getRandomObjects(count, getRandomInt, getUniqueVal, createNewPhotoObject, createNewCommentObject, - getRandomElement, descriptions) { +const OBJECTS_COUNT = { + MIN: 0, + MAX: 26 +}; + +const COMMENTS_COUNT = { + MIN: 0, + MAX: 30 +}; + +const AVATARS_COUNT = { + MIN: 0, + MAX: 6 +}; + +const SENTENCES_COUNT = { + MIN: 0, + MAX: 4 +}; + +const LIKES_COUNT = { + MIN: 15, + MAX: 200 +}; + +const RANDOM_VALUE = { + MIN: 0, + MAX: Number.MAX_VALUE +}; + +const photoDescriptions = ['Закат над океаном', + 'Густой лес в тумане', 'Старая каменная башня', 'Поле с подсолнухами', 'Заснеженные горы на рассвете', + 'Уличное кафе в Париже', 'Тихий пляж с белым песком', 'Пейзаж с речкой и мостиком', 'Яркий фейерверк ночью', + 'Городская улица в дождь', 'Цветущий сад весной', 'Корабль в открытом море', 'Тропа в осеннем лесу', + 'Кошка на подоконнике', 'Ночное небо с луной', 'Живописный водопад', 'Рынок со свежими фруктами', + 'Древние руины в пустыне', 'Скала у побережья', 'Группа воздушных шаров в небе', 'Кофе и книги на столе', + 'Пастбище с коровами', 'Детский парк с аттракционами', 'Чайный домик в Японии', 'Маяк на скалистом берегу', + 'Озеро с отражением леса', 'Снежная деревня зимой', 'Песчаные дюны в пустыне', 'Романтический мост в вечернем свете', + 'Улица с цветными домами', 'Яхты в маленькой гавани', 'Кристально чистое горное озеро', 'Поле с маковыми цветами', + 'Маленькая хижина в горах', 'Закат в тропиках', 'Стадо оленей на рассвете', 'Городской парк с фонтаном', + 'Облачный горизонт над мегаполисом', 'Гребной канал с лодками', 'Старинный замок в горах']; + +const messages = ['Всё отлично! В целом всё неплохо. Но не всё.', + 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.', + 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', + 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', + 'Лица у людей на фотке перекошены, как будто их избивают.', 'Как можно было поймать такой неудачный момент?!']; + + +const names = ['Алексей', 'Мария', 'Иван', 'Екатерина', 'Дмитрий', 'Ольга', 'Николай', 'Анна', 'Сергей', 'Елена', + 'Владимир', 'Татьяна', 'Артур', 'Наталья', 'Павел', 'Ирина', 'Кирилл', 'Светлана', 'Максим', 'Юлия']; + +function getRandomPhotoObjects({ objectParameters }) { + const { + paramCount, + paramGetRandomInteger, + paramGetUniqueValue, + paramGetRandomArrayElements, + paramDescriptions, + paramRandomValue, + paramObjectsCount, + paramCommentsCount, + paramAvatarsCount, + paramSentencesCount, + paramLikesCount + } = objectParameters; + const objects = []; - const getUniqueCommentIdValue = getUniqueVal(getRandomInt, 0, Number.MAX_VALUE); - const getUniquePhotoIdValue = getUniqueVal(getRandomInt, 0, objectsCount); - const getUniqueUrlValue = getUniqueVal(getRandomInt, 0, objectsCount); + const getUniqueCommentIdValue = paramGetUniqueValue(paramGetRandomInteger, paramRandomValue.MIN, paramRandomValue.MAX); + const getUniquePhotoIdValue = paramGetUniqueValue(paramGetRandomInteger, paramObjectsCount.MIN, paramObjectsCount.MAX); + const getUniqueUrlValue = paramGetUniqueValue(paramGetRandomInteger, paramObjectsCount.MIN, paramObjectsCount.MAX); - for (let i = 0; i < count; i++) { + for (let i = 0; i < paramCount; i++) { const comments = []; - const commentsCount = getRandomInt(0, maxCommentsCount); + const commentsCount = paramGetRandomInteger(paramCommentsCount.MIN, paramCommentsCount.MAX); + for (let j = 0; j < commentsCount; j++) { const commentId = getUniqueCommentIdValue(); - const avatar = getRandomInt(0, avatarsCount); - const commentsList = getRandomElement(messages, getRandomInt, maxSentencesCount); - const name = getRandomElement(names, getRandomInt); - - comments.push( - createNewCommentObject( - commentId, - avatar, - commentsList.toString(), - name.toString() - ) - ); + const avatar = paramGetRandomInteger(paramAvatarsCount.MIN, paramAvatarsCount.MAX); + const commentsList = paramGetRandomArrayElements(messages, paramGetRandomInteger, paramSentencesCount.MAX); + const name = paramGetRandomArrayElements(names, paramGetRandomInteger); + + comments.push({ + commentId, + avatar, + commentsList, + name + }); } const photoId = getUniquePhotoIdValue(); const url = getUniqueUrlValue(); - const description = descriptions[getRandomInt(0, descriptions.length)]; - const likes = getRandomInt(minLikesCount, maxLikesCount); - - objects.push( - createNewPhotoObject( - photoId, - url, - description, - likes, - comments - ) - ); + const description = paramDescriptions[paramGetRandomInteger(0, paramDescriptions.length)]; + const likes = paramGetRandomInteger(paramLikesCount.MIN, paramLikesCount.MAX); + + objects.push({ + photoId, + url, + description, + likes, + comments + }); } return objects; @@ -99,7 +128,7 @@ function getRandomArrayElements(array, getRandomInt, maxLength = 1) { elements.push(array[getRandomInt(0, array.length)]); } - return elements; + return elements.join(' '); } function getRandomInteger(min, max) { @@ -110,28 +139,20 @@ function getRandomInteger(min, max) { return Math.floor(result); } -function createPhotoObject(id, url, description, likes, comments) { - const newObject = {}; - - newObject.id = id; - newObject.url = `photos/${url}.jpg`; - newObject.description = description; - newObject.likes = likes; - newObject.comments = comments; - - return newObject; -} - -function createCommentObject(id, avatar, message, name) { - const newObject = {}; - - newObject.id = id; - newObject.avatar = `img/${avatar}.jpg`; - newObject.message = message; - newObject.name = name; - - return newObject; -} - -let generatedObjects = getRandomObjects(objectsCount, getRandomInteger, getUniqueValue, createPhotoObject, createCommentObject, getRandomArrayElements, photoDescriptions); +const parameters = { + paramCount: OBJECTS_COUNT.MAX, + paramGetRandomInteger: getRandomInteger, + paramGetUniqueValue: getUniqueValue, + paramGetRandomArrayElements: getRandomArrayElements, + paramDescriptions: photoDescriptions, + paramRandomValue: RANDOM_VALUE, + paramObjectsCount: OBJECTS_COUNT, + paramCommentsCount: COMMENTS_COUNT, + paramAvatarsCount: AVATARS_COUNT, + paramSentencesCount: SENTENCES_COUNT, + paramLikesCount: LIKES_COUNT +}; + +const generatedObjects = getRandomPhotoObjects({objectParameters: parameters}); console.log(generatedObjects); + From e37ca5fed65fa53d324542345a5117f53326462b Mon Sep 17 00:00:00 2001 From: Ilya Kharlamov Date: Sun, 8 Dec 2024 04:05:08 +0300 Subject: [PATCH 4/8] =?UTF-8?q?=D0=92=D0=BD=D0=BE=D1=81=D0=B8=D1=82=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B2=20=D0=91=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D1=88=D0=B5=20=D0=B4=D0=B5=D1=82=D0=B0=D0=BB=D0=B5?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/main.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/js/main.js b/js/main.js index 24d99bb..41babf1 100644 --- a/js/main.js +++ b/js/main.js @@ -50,7 +50,7 @@ const messages = ['Всё отлично! В целом всё неплохо. const names = ['Алексей', 'Мария', 'Иван', 'Екатерина', 'Дмитрий', 'Ольга', 'Николай', 'Анна', 'Сергей', 'Елена', 'Владимир', 'Татьяна', 'Артур', 'Наталья', 'Павел', 'Ирина', 'Кирилл', 'Светлана', 'Максим', 'Юлия']; -function getRandomPhotoObjects({ objectParameters }) { +function getRandomPhotoObjects({ photoGeneratorParameters }) { const { paramCount, paramGetRandomInteger, @@ -63,7 +63,7 @@ function getRandomPhotoObjects({ objectParameters }) { paramAvatarsCount, paramSentencesCount, paramLikesCount - } = objectParameters; + } = photoGeneratorParameters; const objects = []; const getUniqueCommentIdValue = paramGetUniqueValue(paramGetRandomInteger, paramRandomValue.MIN, paramRandomValue.MAX); @@ -153,6 +153,6 @@ const parameters = { paramLikesCount: LIKES_COUNT }; -const generatedObjects = getRandomPhotoObjects({objectParameters: parameters}); +const generatedObjects = getRandomPhotoObjects({photoGeneratorParameters: parameters}); console.log(generatedObjects); From 27b567862da28fdb2850bbc413e1254a3b3ea23e Mon Sep 17 00:00:00 2001 From: Ilya Kharlamov Date: Sun, 8 Dec 2024 06:25:40 +0300 Subject: [PATCH 5/8] =?UTF-8?q?=D0=92=D0=BD=D0=BE=D1=81=D0=B8=D1=82=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B2=20=D0=91=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D1=88=D0=B5=20=D0=B4=D0=B5=D1=82=D0=B0=D0=BB=D0=B5?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/main.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/js/main.js b/js/main.js index 41babf1..ee48855 100644 --- a/js/main.js +++ b/js/main.js @@ -28,7 +28,7 @@ const RANDOM_VALUE = { MAX: Number.MAX_VALUE }; -const photoDescriptions = ['Закат над океаном', +const PHOTO_DESCRIPTIONS = ['Закат над океаном', 'Густой лес в тумане', 'Старая каменная башня', 'Поле с подсолнухами', 'Заснеженные горы на рассвете', 'Уличное кафе в Париже', 'Тихий пляж с белым песком', 'Пейзаж с речкой и мостиком', 'Яркий фейерверк ночью', 'Городская улица в дождь', 'Цветущий сад весной', 'Корабль в открытом море', 'Тропа в осеннем лесу', @@ -40,14 +40,14 @@ const photoDescriptions = ['Закат над океаном', 'Маленькая хижина в горах', 'Закат в тропиках', 'Стадо оленей на рассвете', 'Городской парк с фонтаном', 'Облачный горизонт над мегаполисом', 'Гребной канал с лодками', 'Старинный замок в горах']; -const messages = ['Всё отлично! В целом всё неплохо. Но не всё.', +const MESSAGES = ['Всё отлично! В целом всё неплохо. Но не всё.', 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.', 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', 'Лица у людей на фотке перекошены, как будто их избивают.', 'Как можно было поймать такой неудачный момент?!']; -const names = ['Алексей', 'Мария', 'Иван', 'Екатерина', 'Дмитрий', 'Ольга', 'Николай', 'Анна', 'Сергей', 'Елена', +const NAMES = ['Алексей', 'Мария', 'Иван', 'Екатерина', 'Дмитрий', 'Ольга', 'Николай', 'Анна', 'Сергей', 'Елена', 'Владимир', 'Татьяна', 'Артур', 'Наталья', 'Павел', 'Ирина', 'Кирилл', 'Светлана', 'Максим', 'Юлия']; function getRandomPhotoObjects({ photoGeneratorParameters }) { @@ -62,7 +62,9 @@ function getRandomPhotoObjects({ photoGeneratorParameters }) { paramCommentsCount, paramAvatarsCount, paramSentencesCount, - paramLikesCount + paramLikesCount, + paramMessages, + paramNames } = photoGeneratorParameters; const objects = []; @@ -78,8 +80,8 @@ function getRandomPhotoObjects({ photoGeneratorParameters }) { for (let j = 0; j < commentsCount; j++) { const commentId = getUniqueCommentIdValue(); const avatar = paramGetRandomInteger(paramAvatarsCount.MIN, paramAvatarsCount.MAX); - const commentsList = paramGetRandomArrayElements(messages, paramGetRandomInteger, paramSentencesCount.MAX); - const name = paramGetRandomArrayElements(names, paramGetRandomInteger); + const commentsList = paramGetRandomArrayElements(paramMessages, paramGetRandomInteger, paramSentencesCount.MAX); + const name = paramGetRandomArrayElements(paramNames, paramGetRandomInteger); comments.push({ commentId, @@ -144,13 +146,15 @@ const parameters = { paramGetRandomInteger: getRandomInteger, paramGetUniqueValue: getUniqueValue, paramGetRandomArrayElements: getRandomArrayElements, - paramDescriptions: photoDescriptions, + paramDescriptions: PHOTO_DESCRIPTIONS, paramRandomValue: RANDOM_VALUE, paramObjectsCount: OBJECTS_COUNT, paramCommentsCount: COMMENTS_COUNT, paramAvatarsCount: AVATARS_COUNT, paramSentencesCount: SENTENCES_COUNT, - paramLikesCount: LIKES_COUNT + paramLikesCount: LIKES_COUNT, + paramMessages: MESSAGES, + paramNames: NAMES }; const generatedObjects = getRandomPhotoObjects({photoGeneratorParameters: parameters}); From 75f536a81de4d0c50d6da8d68bbb826e9a1dc614 Mon Sep 17 00:00:00 2001 From: Ilya Kharlamov Date: Sun, 8 Dec 2024 07:08:03 +0300 Subject: [PATCH 6/8] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D1=8F=D0=B5=D1=82?= =?UTF-8?q?=20console.log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/functions.js | 54 ------------------------------------------------- js/main.js | 2 -- 2 files changed, 56 deletions(-) diff --git a/js/functions.js b/js/functions.js index b4abaee..72ee420 100644 --- a/js/functions.js +++ b/js/functions.js @@ -3,19 +3,6 @@ function checkStringLength(string, maxLength) { return string.length <= maxLength; } -console.log('\n--- Тесты для checkStringLength ---'); -console.log( - `Проверяемая строка короче или равна 20 символам: ${checkStringLength('проверяемая строка', 20) === true}` -); - -console.log( - `Проверяемая строка короче или равна 18 символам: ${checkStringLength('проверяемая строка', 18) === true}` -); - -console.log( - `Проверяемая строка короче или равна 10 символам: ${checkStringLength('проверяемая строка', 10) === true}` -); - //Задача №2. Функция для проверки, является ли строка палиндромом. function checkPalindrome(string) { const formattedString = string.replaceAll(' ', '').toLowerCase(); @@ -27,22 +14,6 @@ function checkPalindrome(string) { return reverseString === formattedString; } -console.log('\n--- Тесты для checkPalindrome ---'); -console.log( - `Строка является палиндромом: ${checkPalindrome('топот') === true}` -); -console.log( - `Строка является палиндромом с разным регистром: ${checkPalindrome('ДовОд') === true - }` -); -console.log( - `Строка не является палиндромом: ${checkPalindrome('Кекс') === false}` -); -console.log( - `Строка является палиндромом: ${checkPalindrome('Лёша на полке клопа нашёл ') === true - }` -); - //Задача №3. Извлечение цифр из строк. function parseToPositiveInt(string) { const stringForloop = string.toString(); @@ -56,28 +27,3 @@ function parseToPositiveInt(string) { return formattedString !== '' ? +formattedString : NaN; } - -console.log('\n--- Тесты для extractNumber---'); -console.log( - `Аргумент начинается с числа: ${parseToPositiveInt('2023 год') === 2023}` -); -console.log( - `Аргумент заканчивается на число: ${ - parseToPositiveInt('ECMAScript 2022') === 2022 - }` -); -console.log( - `Аргумент содержит несколько чисел, в том числе и с плавющей точкой: ${ - parseToPositiveInt('1 кефир, 0.5 батона') === 105 - }` -); -console.log( - `Аргумент закначивается на число с нолями: ${ - parseToPositiveInt('агент 007') === 7 - }` -); -console.log(`Аргумент строка без чисел: ${isNaN(parseToPositiveInt('а я томат'))}`); -console.log(`Аргумент число: ${parseToPositiveInt(2023) === 2023}`); -console.log(`Аргумент отрицательное число: ${parseToPositiveInt(-1) === 1}`); -console.log(`Аргумент число с плавющей точкой: ${parseToPositiveInt(1.5) === 15}`); - diff --git a/js/main.js b/js/main.js index ee48855..58bb772 100644 --- a/js/main.js +++ b/js/main.js @@ -158,5 +158,3 @@ const parameters = { }; const generatedObjects = getRandomPhotoObjects({photoGeneratorParameters: parameters}); -console.log(generatedObjects); - From efc6edd017466e63be89da3cd29a35cdbb38159d Mon Sep 17 00:00:00 2001 From: Ilya Kharlamov Date: Sun, 8 Dec 2024 21:02:06 +0300 Subject: [PATCH 7/8] =?UTF-8?q?=D0=98=D0=B7=D0=B2=D0=BB=D0=BA=D0=B5=D0=BA?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=20=D1=84=D1=83=D0=BD=D1=86=D0=BA=D0=B8=D1=8E?= =?UTF-8?q?=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8?= =?UTF-8?q?=D0=B5=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/main.js | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/js/main.js b/js/main.js index 58bb772..f6196bd 100644 --- a/js/main.js +++ b/js/main.js @@ -74,22 +74,7 @@ function getRandomPhotoObjects({ photoGeneratorParameters }) { for (let i = 0; i < paramCount; i++) { - const comments = []; - const commentsCount = paramGetRandomInteger(paramCommentsCount.MIN, paramCommentsCount.MAX); - - for (let j = 0; j < commentsCount; j++) { - const commentId = getUniqueCommentIdValue(); - const avatar = paramGetRandomInteger(paramAvatarsCount.MIN, paramAvatarsCount.MAX); - const commentsList = paramGetRandomArrayElements(paramMessages, paramGetRandomInteger, paramSentencesCount.MAX); - const name = paramGetRandomArrayElements(paramNames, paramGetRandomInteger); - - comments.push({ - commentId, - avatar, - commentsList, - name - }); - } + const comments = getRandomComments(); const photoId = getUniquePhotoIdValue(); const url = getUniqueUrlValue(); @@ -108,6 +93,27 @@ function getRandomPhotoObjects({ photoGeneratorParameters }) { return objects; } +function getRandomComments() { + const comments = []; + const getUniqueCommentIdValue = getUniqueValue(getRandomInteger, RANDOM_VALUE.MIN, RANDOM_VALUE.MAX); + const commentsCount = getRandomInteger(COMMENTS_COUNT.MIN, COMMENTS_COUNT.MAX); + + for (let j = 0; j < commentsCount; j++) { + const commentId = getUniqueCommentIdValue(); + const avatar = `img/avatar-${getRandomInteger(AVATARS_COUNT.MIN, AVATARS_COUNT.MAX)}.svg`; + const commentsList = getRandomArrayElements(MESSAGES, getRandomInteger, SENTENCES_COUNT.MAX); + const name = getRandomArrayElements(NAMES, getRandomInteger); + + comments.push({ + commentId, + avatar, + commentsList, + name + }); + } + return comments; +} + function getUniqueValue(getRandomInt, min, max) { const previousValues = []; @@ -158,3 +164,4 @@ const parameters = { }; const generatedObjects = getRandomPhotoObjects({photoGeneratorParameters: parameters}); +console.log(generatedObjects); From b6fd41aa8488df57a36dec76574354b9a256ef97 Mon Sep 17 00:00:00 2001 From: Ilya Kharlamov Date: Sun, 8 Dec 2024 21:51:19 +0300 Subject: [PATCH 8/8] =?UTF-8?q?=D0=98=D0=B7=D0=B2=D0=BB=D0=BA=D0=B5=D0=BA?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=20=D1=84=D1=83=D0=BD=D1=86=D0=BA=D0=B8=D1=8E?= =?UTF-8?q?=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8?= =?UTF-8?q?=D0=B5=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/main.js | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/js/main.js b/js/main.js index f6196bd..8a243b1 100644 --- a/js/main.js +++ b/js/main.js @@ -25,7 +25,7 @@ const LIKES_COUNT = { const RANDOM_VALUE = { MIN: 0, - MAX: Number.MAX_VALUE + MAX: 100000 }; const PHOTO_DESCRIPTIONS = ['Закат над океаном', @@ -55,20 +55,12 @@ function getRandomPhotoObjects({ photoGeneratorParameters }) { paramCount, paramGetRandomInteger, paramGetUniqueValue, - paramGetRandomArrayElements, paramDescriptions, - paramRandomValue, paramObjectsCount, - paramCommentsCount, - paramAvatarsCount, - paramSentencesCount, paramLikesCount, - paramMessages, - paramNames } = photoGeneratorParameters; const objects = []; - const getUniqueCommentIdValue = paramGetUniqueValue(paramGetRandomInteger, paramRandomValue.MIN, paramRandomValue.MAX); const getUniquePhotoIdValue = paramGetUniqueValue(paramGetRandomInteger, paramObjectsCount.MIN, paramObjectsCount.MAX); const getUniqueUrlValue = paramGetUniqueValue(paramGetRandomInteger, paramObjectsCount.MIN, paramObjectsCount.MAX); @@ -164,4 +156,3 @@ const parameters = { }; const generatedObjects = getRandomPhotoObjects({photoGeneratorParameters: parameters}); -console.log(generatedObjects);