Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Больше деталей #6

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -234,5 +234,6 @@ <h2 class="data-error__title">Не удалось загрузить данны
</section>
</template>
<script src="/js/functions.js"></script>
<script src="/js/main.js"></script>
</body>
</html>
11 changes: 5 additions & 6 deletions js/functions.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
const getStringLength = (string, maxLength) =>
string.length <= maxLength;
const getStringLength = (string, maxLength) => string.length <= maxLength;
getStringLength();


function findPalindrom (string) {
function findPalindrom(string) {
const normalisedString = string.toLowerCase().replaceAll(' ', '');
let newString = '';
for (let i = normalisedString.length - 1; i >= 0; i--) {
Expand All @@ -14,14 +13,14 @@ function findPalindrom (string) {
findPalindrom();


function findNumber (string) {
function findNumber(string) {
let numbers = '';
string = string.toString();
for (let i = 0; i < string.length; i++) {
if (Number.isNaN(parseInt(string[i], 10)) === false) {
if (!Number.isNaN(parseInt(string[i], 10))) {
numbers += string[i];
}
}
return numbers === '' ? NaN : Number(numbers);
return parseInt(numbers, 10);
}
findNumber();
76 changes: 76 additions & 0 deletions js/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
const MIN_VALUE = 1;
const MAX_PHOTO_ID = 25;
const MAX_AVATAR_ID = 1000;
const MAX_AVATAR_VALUE = 6;
const MIN_LIKES = 15;
const MAX_LIKES = 200;
const MIN_COMMENTS = 0;
const MAX_COMMENTS = 30;

const MESSAGES = [
'Всё отлично!',
'В целом всё неплохо. Но не всё.',
'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.',
'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.',
'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.',
'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!'
];

const NAMES = [
'Иван Петров',
'Хуан Себастьян',
'Мария Шарапова',
'Кристина Агилера',
'Виктор Иванов',
'Юлия Грибова',
'Люпита Люпита',
'Джордж Вашингтон',
'Игорь Сергеевич',
'Марина Игнатова',
'Мигель',
'Анна Антонова'
];

const DESCRIPTION = 'Посмотри, какое фото получилось!';

const PHOTO_DESCRIPTION_COUNT = 25;


const getRandomInteger = (min, max) => {
const lower = Math.ceil(Math.min(min, max));
const upper = Math.floor(Math.max(min, max));
const result = Math.random() * (upper - lower + 1) + lower;
return Math.floor(result);
};

function createId(min, max) {
let currentValue = min - 1;
return function addValue() {
if (currentValue <= max) {
currentValue++;
}
return currentValue;
};
}

const generatePhotoId = createId(MIN_VALUE, MAX_PHOTO_ID);
const generatePhotoUrl = createId(MIN_VALUE, MAX_PHOTO_ID);
const generateAvatarId = createId(MIN_VALUE, MAX_AVATAR_ID);

const createComment = () => ({
id: generateAvatarId(),
avatar: `img/avatar-${getRandomInteger(MIN_VALUE, MAX_AVATAR_VALUE)}.svg`,
message: MESSAGES[getRandomInteger(0, MESSAGES.length - 1)],
name: NAMES[getRandomInteger(0, NAMES.length - 1)]
});

const createPhotoDescription = () => ({
id: generatePhotoId(),
url: `photos/${generatePhotoUrl()}.jpg`,
description: DESCRIPTION,
likes: getRandomInteger(MIN_LIKES, MAX_LIKES),
comments: Array.from({ length: getRandomInteger(MIN_COMMENTS, MAX_COMMENTS) }, createComment)
});

const createPhotos = () => Array.from({ length: PHOTO_DESCRIPTION_COUNT }, createPhotoDescription);
createPhotos();
Loading