// Шаг 1. Сохраняем число
const number = 9.47;
// Шаг 2. Умножаем на десять, чтобы...
const newNumber1 = number * 10; // 94.7
// Шаг 3. С помощью Math.floor отбросить дробную часть
const newNumber2 = Math.floor(nuwNumber1); // 94
// Шаг 4. Обратно делим на 10 (т.к. мы шаге 2 умножали на 10) чтобы получить результат
const result = newNumber2 / 10; // 9.4
console.log(result); // => 9.4
const BLACK_LIST = ['красной', 'печали'];
const TEXT = `
Ах, я вспоминаю ясно, был тогда декабрь ненастный,
И от каждой вспышки красной тень скользила на ковер.
Ждал я дня из мрачной дали, тщетно ждал, чтоб книги дали
Облегченье от печали по утраченной Линор,
По святой, что там, в Эдеме ангелы зовут Линор,
Безыменной здесь с тех пор.
`;
const rows = TEXT.split('\n');
const normalizedRows = rows.map(row => {
const shouldRemovePunctuationMarks = BLACK_LIST.some(forbiddenWord => {
return row.includes(forbiddenWord);
});
if (shouldRemovePunctuationMarks) {
const rowWithoutPunctuationMarks = row.replace(/[.,!?':”]/gi, '');
return rowWithoutPunctuationMarks;
}
return row;
});
const normalizedText = normalizedRows.join('\n');
console.log(normalizedText);
// Ищем родителей
const works = Array.from(document.querySelectorAll('.works-name'));
// Для каждого из родителей
works.forEach((item) => {
// Вешаем обработчик
item.addEventListener('click', (event) => {
// Если пользователь кликнул именно на кнопку
if (event.target.classList.contains('.work-header-arrow')) {
// Меняем класс у самого родителя
item.classList.toggle("active");
}
});
});
function wrapHashtagsInText(text) {
const words = text.split(' ');
const processedWords = words.map((word) => {
const isHashTag = word.startsWith('#');
if (!isHashTag) {
return word;
}
const hasWordPunctuationMarks = word.includes('?') || word.includes('!') || word.includes('.') || word.includes(',');
if (!hasWordPunctuationMarks) {
return `<span>${word}</span>`;
}
const punctuationMarkIndex = word.split('').findIndex((letter) => '?!,.'.includes(letter));
const firstPartOfWord = word.slice(0, punctuationMarkIndex);
const lastPartOfWord = word.slice(punctuationMarkIndex);
return `<span>${firstPartOfWord}</span>${lastPartOfWord}`;
});
return processedWords.join(' ');
}
console.log(wrapHashtagsInText('My favourite language is #javascript because I love #frontend!'));
// My favourite language is <span>#javascript</span> because I love <span>#frontend</span>!
console.log(wrapHashtagsInText('Привет #user and #admin!!!'));
// Привет <span>#user</span> and <span>#admin</span>!!!
const array = [1, 2, 4, 1, 4, 6, 2, 5];
function method1(coll) {
// так работает Set
// https://learn.javascript.ru/map-set#set
return [...new Set(coll)];
}
function method2(coll) {
return coll.filter((currentItem, index) => {
// indexOf находит первый попавшийся элемент и возвращает его индекс
// когда цикл дойдет до 4-го элемента (единицы), то index будет равен 3-м, а indexOf найден единицу на 0-м элементе
// результат сравнения будет false и элемент в результат не войдет
return index === coll.indexOf(currentItem);
});
}
function method3(coll) {
// из массива создадим объект, т.к. в объекте не может быть двух одинаковых ключей
const mapping = coll.reduce((accumulator, currentItem) => {
// даже если значение уже есть - оно перезапишется
accumulator[currentItem] = currentItem;
return accumulator;
}, {});
// из полученного объекта создаем массив значений
return Object.values(mapping);
}
console.log(method1(array)); // [1, 2, 4, 6, 5]
console.log(method2(array)); // [1, 2, 4, 6, 5]
console.log(method3(array)); // [1, 2, 4, 6, 5]
<form>
<input required>
<button>Сохранить</button>
</form>
const form = document.querySelector('form');
const input = form.querySelector('input');
form.addEventListener('submit', (event) => {
event.preventDefault();
input.disabled = true;
});
const SIZE = 8;
function isEven(number) {
return number % 2 === 0;
}
function getCeil(row, column) {
if (isEven(row) === isEven(column)) return '#';
return ' ';
}
for (let row = 0; row < SIZE; row += 1) {
let string = '';
for (let column = 0; column < SIZE; column += 1) {
string += getCeil(row, column);
}
console.log(string);
}