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/functions.js b/js/functions.js index 0c65ecb..99a3f83 100644 --- a/js/functions.js +++ b/js/functions.js @@ -1,30 +1,49 @@ // Функция для проверки длины строки. -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); -}; +// return parseInt(numberString, 10); +// }; + +// getNumber(); + + +// Функция из Доп.задания пятого раздела ДЗ. -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)); +// Алексей подскажи как тут лучше всего сделать рефакторинг? 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 7cb7c48..755ba2a 100644 --- a/js/main.js +++ b/js/main.js @@ -1,71 +1,4 @@ -const NAMES = [ - 'Владимир', - 'Генадий', - 'Олег', - 'Виталий', - 'Максим', - 'Наталья', - 'Светлана', - 'Ольга', - 'Ева' -]; - -const DESCRIPTION = [ - 'Замечательное фото', - 'Отличный ракурс', - 'Классная идея', - 'Красивое фото', - 'Это фото заслуживае отдельного внимания', - 'Можно сразу на обложку журнала', - 'У тебя определённо талант!!!' -]; - -const MESSAGES = [ - 'Всё отлично!', - 'В целом всё неплохо.', - 'Но не всё.', - 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра.', - 'В конце концов это просто непрофессионально.', - 'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', - 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.', - 'Лица у людей на фотке перекошены, как будто их избивают., Как можно было поймать такой неудачный момент?!']; - - -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 PHOTO_COUNT = 25; - -const createComentsPhoto = () => ({ - id: generateCommentsId(), - avatar: `img/avatar-${getRandomInteger(1, 6)}.svg`, - message: getRandomArrayElement(MESSAGES), - name: getRandomArrayElement(NAMES) -}); - -const createFotoDescription = () => ({ - id: generatePhotoId(1, 25), - url: `photos/${generateUrl(1, 25)}.jpg`, - description: getRandomArrayElement(DESCRIPTION), - likes: getRandomInteger(15, 200), - comments: Array.from({ length: getRandomInteger(0, 30) }, createComentsPhoto) -}); - -const photoObject = Array.from({ length: PHOTO_COUNT }, createFotoDescription); +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 };