-
Ошибка загрузки файла
-
+
-
-
-
-
-
Изображение успешно загружено
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
- Не удалось загрузить данные
-
-
+
+
+
+
+
Ошибка загрузки файла
+
+
+
+
-
+
+
+
+
+
Изображение успешно загружено
+
+
+
+
-
+
+
+
+ Не удалось загрузить данные
+
+
+
+
+
diff --git a/js/function.js b/js/function.js
index 28ae021..8867173 100644
--- a/js/function.js
+++ b/js/function.js
@@ -2,7 +2,7 @@
const checkLength = (string, maxLength) => string.length <= maxLength;
-console.log(checkLength('abracadabra', 15));
+checkLength('abracadabra', 15);
// Проверка на палиндром с использованием цикла
@@ -15,7 +15,7 @@ const checkPalindrom = (string) => {
return normilizedString === reverseString;
};
-console.log(checkPalindrom('Аргентина манит негра'));
+checkPalindrom('Аргентина манит негра');
// Проверка на палиндром с использований методов объектов
@@ -25,7 +25,7 @@ const isPalindrom = (string) => {
return normilizedString === reverseString;
};
-console.log(isPalindrom('Кекс'));
+isPalindrom('Кекс');
// Извлечение чисел из строки с использованием цикла
@@ -40,7 +40,7 @@ const isNumber = (string) => {
return parseInt(resultString, 10);
};
-console.log(isNumber('1 литр рома на 1,5 литра колы'));
+isNumber('1 литр рома на 1,5 литра колы');
// Извлечение чисел из строки через преобразование строки в объект
@@ -55,4 +55,4 @@ const extractNumber = (string) => {
return parseInt(resultString, 10);
};
-console.log(extractNumber('2,5 грамма протеина на 1 кг массы тела'));
+extractNumber('2,5 грамма протеина на 1 кг массы тела');
diff --git a/js/main.js b/js/main.js
index e69de29..1f30ad1 100644
--- a/js/main.js
+++ b/js/main.js
@@ -0,0 +1,138 @@
+// Массив описаний
+
+const DESCRIPTIONS = [
+ 'Красивый пейзаж с горами и озером',
+ 'Маленькая девочка играет с собакой',
+ 'Группа друзей весело проводит время на пляже',
+ 'Старинное здание с готической архитектурой',
+ 'Цветущие вишневые деревья в весеннем саду',
+ 'Спортсмен бежит по беговой дорожке',
+ 'Семья отдыхает на природе, пикник',
+ 'Величественный водопад в лесу',
+ 'Кошка спит, свернувшись клубочком',
+ 'Люди гуляют по оживленной городской улице',
+ 'Закат над морем, отражение солнца в воде',
+ 'Ребенок рисует красками на бумаге',
+ 'Велосипедист едет по велодорожке в парке',
+ 'Старинный замок на фоне гор',
+ 'Поле с цветущими подсолнухами',
+ 'Женщина фотографирует на камеру',
+ 'Дети играют в песочнице',
+ 'Лодка плывет по спокойному озеру',
+ 'Птица парит в небе',
+ 'Люди наслаждаются прогулкой по осеннему лесу',
+ 'Красивый букет цветов в вазе',
+ 'Горы с заснеженными вершинами',
+ 'Кошка сидит на окне и смотрит на улицу',
+ 'Люди катаются на коньках на замерзшем озере',
+ 'Ребенок играет с игрушечными машинками',
+];
+
+//Массив комментариев
+
+const MESSAGES = [
+ 'Всё отлично!',
+ 'В целом всё неплохо. Но не всё.',
+ 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.',
+ 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.',
+ 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.',
+ 'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!',
+];
+
+// Массив авторов комментариев
+
+const NAMES = [
+ 'Анна',
+ 'Михаил',
+ 'Екатерина',
+ 'Александр',
+ 'Мария',
+ 'Дмитрий',
+ 'Ольга',
+ 'Виктор',
+];
+
+// Задаём максимальное кол-во комментов
+
+const MAX_COMMENTS = 500;
+
+// Задаём диапазон кол-ва аватаров
+
+const AvatarRange = {
+ MIN: 1,
+ MAX: 6,
+};
+
+// Задаём диапазон кол-ва лайков
+
+const LikesRange = {
+ MIN: 1,
+ MAX: 200,
+};
+
+// Задаём диапазон кол-ва комментариев
+
+const MessagesRange = {
+ MIN: 1,
+ MAX: 30,
+};
+
+// Определяем рандомное значение
+
+const getRandomInteger = (min, max) =>
+ Math.floor(Math.random() * (max - min + 1) + min);
+
+// Проверяем его на уникальность (возвращаем рандомное значение, ранее не использованое в блоке)
+
+const getRandomUniqueInteger = (min, max) => {
+ const uniqueIntArr = [];
+ return () => {
+ while (uniqueIntArr.length < max - min + 1) {
+ const randomInt = getRandomInteger(min, max);
+ if (!uniqueIntArr.includes(randomInt)) {
+ uniqueIntArr.push(randomInt);
+ return randomInt;
+ }
+ }
+ };
+};
+
+// Получаем рандомный элемент любого массива
+
+const getRandomArrayElement = (elements) =>
+ elements[getRandomInteger(0, elements.length - 1)];
+
+// Создаём объект - комментарий
+
+const createComment = () => {
+ const uniqueCommentId = getRandomUniqueInteger(1, MAX_COMMENTS);
+ return {
+ id: uniqueCommentId(),
+ avatar: `img/avatar-${getRandomInteger(
+ AvatarRange.MIN,
+ AvatarRange.MAX
+ )}.svg`,
+ message: getRandomArrayElement(MESSAGES),
+ name: getRandomArrayElement(NAMES),
+ };
+};
+
+// Создаём галлерею - массив объектов - фото
+
+const createGallery = (quantity) => {
+ const uniquePhotoId = getRandomUniqueInteger(1, quantity);
+ const uniquePhotoUrl = getRandomUniqueInteger(1, quantity);
+ return Array.from({ length: quantity }).map(() => ({
+ id: uniquePhotoId(),
+ url: `photos/${uniquePhotoUrl()}.jpeg`,
+ description: getRandomArrayElement(DESCRIPTIONS),
+ likes: getRandomInteger(LikesRange.MIN, LikesRange.MAX),
+ comments: Array.from(
+ { length: getRandomInteger(MessagesRange.MIN, MessagesRange.MAX) },
+ createComment
+ ),
+ }));
+};
+
+// eslint-disable-next-line no-console
+console.log(createGallery(25));