Переворот строки
Вы можете изменять строку с помощью split, join и reverse методов.
Вы можете изменять строку с помощью split, join и reverse методов.
const stringReverse = str => str.split("").reverse().join("");#функции
stringReverse('elcitra ym ekil uoy epoh i');
// Result: i hope you like my article
👍4
Использование заглавной буквы в строке
Поскольку JavaScript не предоставляет встроенного метода преобразования заглавной буквы, с помощью этой однострочной функции вы можете использовать в строке заглавную букву.
Поскольку JavaScript не предоставляет встроенного метода преобразования заглавной буквы, с помощью этой однострочной функции вы можете использовать в строке заглавную букву.
const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1);#функции
capitalize("i hope you like my article.");
// I hope you like my article.
👍5
Округление дробей до определенного количества десятичных знаков
Когда вы имеете дело с суммами, расчеты в десятичных дробях очень важны и должны быть точными и надежными. Использование округления десятичных дробей до фиксированного числа десятичных знаков — непростая задача в JavaScript. Встроенный метод
Чтобы избежать этого странного поведения, вы можете использовать
Когда вы имеете дело с суммами, расчеты в десятичных дробях очень важны и должны быть точными и надежными. Использование округления десятичных дробей до фиксированного числа десятичных знаков — непростая задача в JavaScript. Встроенный метод
toFixed()
может легко выполнить это преобразование, но в некоторых случаях он дает странные результаты из-за того, как работает арифметика с плавающей запятой.Чтобы избежать этого странного поведения, вы можете использовать
Math.round()
, чтобы округлить дробь до заданного количества десятичных знаков.// Default Javascript function toFixed behaviour#функции
Number((1.005).toFixed(2)) //outputs 1 instead of 1.01
Number((1.555).toFixed(2)) //outputs 1.55 instead of 1.56
const round = (n, d) => Number(Math.round(n + "e" + d) + "e-" + d);
round(1.005, 2) //1.01
round(1.555, 2) //1.56
👍5🔥2
Перемешивание массива
Вы можете использовать следующий код для перемешивания массива. Он использует методы sort и random.
Вы можете использовать следующий код для перемешивания массива. Он использует методы sort и random.
const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());#функции
console.log(shuffleArray([1, 2, 3, 4]));
// Result: [ 1, 4, 3, 2 ]
👍9
Обнаружение Dark Mode
Узнайте, находится ли устройство пользователя в dark mode, используя следующий код.
Узнайте, находится ли устройство пользователя в dark mode, используя следующий код.
const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;#функции
console.log(isDarkMode) // Result: True or False
👍10
Получение параметров запроса из URL-адреса
Очень полезная функция, когда вы имеете дело с параметрами запроса в URL-адресе. Вы можете легко получить параметры запроса из него, передав URL-адрес в качестве аргумента функции.
Очень полезная функция, когда вы имеете дело с параметрами запроса в URL-адресе. Вы можете легко получить параметры запроса из него, передав URL-адрес в качестве аргумента функции.
const getParameters = (URL) => JSON.parse('{"' + decodeURI(URL.split("?")[1]).replace(/"/g, '\"').replace(/&/g, '","').replace(/=/g, '":"') +'"}');#функции
getParameters("https://www.google.de/search?q=cars&start=40");
// Result: { q: 'cars', start: '40' }
👍7
Получение среднего значения массива чисел
Редуктор JavaScript позволяет вычислять среднее значение массивов в одной строке. Метод Reduce очень полезен при написании однострочных решений для ряда проблем, таких как нахождение суммы или максимума в массиве чисел.
Редуктор JavaScript позволяет вычислять среднее значение массивов в одной строке. Метод Reduce очень полезен при написании однострочных решений для ряда проблем, таких как нахождение суммы или максимума в массиве чисел.
const average = arr => arr.reduce((a, b) => a + b) / arr.length;#функции
average([21, 56, 23, 122, 67])
//57.8
👍9🔥2❤1
Проверка, поддерживает ли текущий пользователь сенсорные события
const touchSupported = () => {#функции
('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch);
}
console.log(touchSupported());
// Result: will return true if touch events are supported, false if not
👍4🔥2❤1
Нахождение дня в году
Еще одна очень полезная функция JavaScript, относящаяся к Датам/Календарю. Она в основном предоставляет вам количество дней в году. Например, 6 февраля получается 37 день из 365 дней в году.
Еще одна очень полезная функция JavaScript, относящаяся к Датам/Календарю. Она в основном предоставляет вам количество дней в году. Например, 6 февраля получается 37 день из 365 дней в году.
const dayOfYear = (date) =>#функции
Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);
dayOfYear(new Date());
// Result: 272
👍2
Получение значений cookie браузера
Полезная короткая функция JavaScript, предназначенная для получения значений cookie браузера.
Полезная короткая функция JavaScript, предназначенная для получения значений cookie браузера.
const cookie = name => ; ${document.cookie}.split(; ${name}=).pop().split(';').shift();
cookie('_ga');
// Result: "GA1.2.1929736587.1601974046"
#функции👍2
Хочешь видеть на канале другие рубрики? Статьи, тесты, кодпены и т.д.
Anonymous Poll
77%
Да
17%
Нет
7%
Не важно
❤1👍1🔥1
Очищение всех cookie браузера
Еще одна однострочная функция, которую можно использовать для очистки всех файлов cookie, хранящихся на веб-странице, с помощью document.cookie и их очистки.
Еще одна однострочная функция, которую можно использовать для очистки всех файлов cookie, хранящихся на веб-странице, с помощью document.cookie и их очистки.
const clearCookies = document.cookie.split(';').forEach(cookie => document.cookie = cookie.replace(/^ +/, '').replace(/=.*/, =;expires=${new Date(0).toUTCString()};path=/));#функции
👍2
Получение случайного логического значения (true / false)
Эта функция вернет логическое значение (true или false) с помощью метода Math.random(). Он создаст случайное число от 0 до 1, после чего мы проверяем, больше оно или меньше 0,5. Это означает, что шанс получить либо истину, либо ложь составляет 50/50.
Эта функция вернет логическое значение (true или false) с помощью метода Math.random(). Он создаст случайное число от 0 до 1, после чего мы проверяем, больше оно или меньше 0,5. Это означает, что шанс получить либо истину, либо ложь составляет 50/50.
const randomBoolean = () => Math.random() >= 0.5;#функции
console.log(randomBoolean());
// Result: a 50/50 change on returning true of false
👍3
Удаление дублей в массиве
Set в JavaScript хранят только уникальные элементы. Мы можем использовать это поведение для удаления повторяющихся элементов из массива. Однако оно работает только с массивами, хранящими примитивные данные. Таким образом, вам придется написать многострочное решение для удаления дубликатов в массивах, хранящих объекты. Но, тем не менее, это вполне приличный метод удаления дублей в простых сценариях.
Set в JavaScript хранят только уникальные элементы. Мы можем использовать это поведение для удаления повторяющихся элементов из массива. Однако оно работает только с массивами, хранящими примитивные данные. Таким образом, вам придется написать многострочное решение для удаления дубликатов в массивах, хранящих объекты. Но, тем не менее, это вполне приличный метод удаления дублей в простых сценариях.
const removeDuplicates = (arr) => [...new Set(arr)];#функции
removeDuplicates([31, 56, 12, 31, 45, 12, 31]);
//[ 31, 56, 12, 45 ]
👍5
Проверка валидности даты
Проверьте правильность ввода даты пользователем.
Проверьте правильность ввода даты пользователем.
const isDateValid = (...val) => !Number.isNaN(new Date(...val).valueOf());#функции
isDateValid("December 17, 1995 03:24:00");
// Result: true
🔥3
Получение случайного элемента из массива
Эта однострочная строка возвращает вам случайный элемент из входного массива, который вы передаете в качестве аргумента функции.
Эта однострочная строка возвращает вам случайный элемент из входного массива, который вы передаете в качестве аргумента функции.
const randomArrayItem = (arr) => arr[Math.floor(Math.random() * arr.length)];#функции
randomArrayItem(['lol', 'a', 2, 'foo', 52, 'Jhon', 'hello', 57]);
// Result: It will be some random item from array
👍4❤1
Разделитель разрядов
Я задам лишь один вопрос: «Что будет выведено в консоль?»:
Всё просто, символ "
Я задам лишь один вопрос: «Что будет выведено в консоль?»:
console.log(1_000 + 1_500);Думаете, что произойдет конкатенация и в консоль выведется «1_0001_500»? Или же выведет ошибку? На самом деле ответом будет являться число
2500
, но почему?Всё просто, символ "
_
" является разделителем для улучшения читабельности. Согласитесь, гораздо быстрее понять, что написано «один миллион», когда он выглядит так: 1_000_000
, а не так: 1000000
#полезно👍21
Быстрая очистка массива с сохранением ссылки
Какой самый быстрый способ очистить массив мы знаем? Разумеется — это присвоить массиву значение пустого массива
P.S. Аналогичным способом можно заполнять массивы пустыми данными:
Какой самый быстрый способ очистить массив мы знаем? Разумеется — это присвоить массиву значение пустого массива
[]
, но тогда ссылка на этот массив изменится, а что если нам нужно её сохранить?const array = [/Какие-то данные/];Всё, массив очищен, а ссылка сохранена.
array.length = 0; //[]
P.S. Аналогичным способом можно заполнять массивы пустыми данными:
const array = [1, 2];
array.length = 4; //[1, 2, , ]
#функции👍10
Оператор с запятой
Вновь простой вопрос, что будет выведено в консоль?
Всё дело в том, что тут написано не число два с половиной, а число два, запятая, число 5. Что делает запятая? Она выполняет слева направо каждый из операндов и возвращает значение последнего, в данном примере число 5.
#операторы
Вновь простой вопрос, что будет выведено в консоль?
console.log((2,5 - 2) * 2);Совершенно верно, 6. Но почему?
Всё дело в том, что тут написано не число два с половиной, а число два, запятая, число 5. Что делает запятая? Она выполняет слева направо каждый из операндов и возвращает значение последнего, в данном примере число 5.
#операторы
👍10
Массив и Boolean
Иногда нам нужно отфильтровать массив не по его первоначальному значению, а по новому значению, поэтому мы используем map:
Иногда нам нужно отфильтровать массив не по его первоначальному значению, а по новому значению, поэтому мы используем map:
myArray.map(item => {
// Делаем обработку ...
// Если нам всё равно на item, мы возвращаем false или null, или undefined
return false;
});
#функции