Изучите эти однострочники и используйте в своих проектах!
Синтаксис Javascript и встроенные методы позволяют сократить некоторый частоиспользуемый код всего до одной строчки.
Можно перевернуть строку используя методы split, join и reverse.
const stringReverse = str => str.split("").reverse().join("");
stringReverse("Welcome to Javascript"); //tpircsavaJ ot emocleWНаходить среднее из массива чисел удобно при помощи метода reduce. Вообще он очень полезен пир написании однострочных решений для многих задач, например, для нахождения суммы чисел, для нахождения максимума в массиве.
const average = arr => arr.reduce((a, b) => a + b) / arr.length;
average([21, 56, 23, 122, 67]); //57.8const pastWeek = [...Array(7).keys()].map(days => new Date(Date.now() - 86400000 * days));Если использовать знак плюса вместо минуса, то можно получить массив со следующими семью днями. А если нужно получать данные от определённой даты, но нужно заменить Date.now() на неё. Обратите внимание, что здесь 86400000 - это количество миллисекунд в день.
Сначала нужно получить timestamps в миллисекундах обеих дат, вычесть одну из другой
const dayDif = (date1, date2) => Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000);
dayDif(new Date("2021-09-30"), new Date("2021-11-06")); //37
Несмотря на то, что Javascript не предоставляет встроенный метод преобразования заглавных букв, написание собственного метода для преобразования строки с заглавной буквы занимает всего одну строку.
const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1);
capitalize("javascript в одну строку это весело!"); //Javascript в одну строку это весело!Наборы (Set) в Javascript могут содержать только уникальные значения любого типа. Можно это использовать для удаления повторяющихся значений в массиве. Но это работает только с массивами, хранящими примитивные данные.
const removeDuplicates = (arr) => [...new Set(arr)];
removeDuplicates([31, 56, 12, 31, 45, 12, 31]); //[ 31, 56, 12, 45 ]Достаточно нетривиальная задача в Javascript. Но используя метод toFixed() можно легко выполнить преобразование. Но в некоторых случаях может привести к неточности из-за работы арифметики чисел с плавающей запятой. Чтобы избежать этого неожиданного поведения в нашем коде, мы можем представить числа в экспоненциальной нотации и использовать Math.round() для округления десятичной дроби до заданного количества десятичных знаков.
const round = (n, d) => Number(Math.round(n + "e" + d) + "e-" + d);
round(7.105, 2); //7.11
round(5.955, 2); //5.96Эта простая функция генерирует случайный идентификатор с помощью Math.random(). Поскольку Math.random() не гарантирует, что все сгенерированные числа уникальны, этот метод не на 100% безопасен для использования в производственной среде. Но нет ничего плохого в том, чтобы использовать его во время разработки, чтобы быстро получить идентификатор для завершения реализации и тестирования приложения.
const randomID2 = Math.random().toString(36).substring(2); // vmij4o5nlrs
const randomID2 = Math.random().toString(36).substring(2); // 0kmbdwbqnq9Этот метод позволяет узнать прокручена ли страница до конца вниз?
const scrolledToBottom = () => document.documentElement.clientHeight + window.scrollY >= document.documentElement.scrollHeight;
scrolledToBottom(); // falseОчень часто требуется такое поведение для многих сайтов, полезно вешать эту функцию на специальную кнопку «наверх» для сайта. Только перемещение будет мгновенное, без анимации.
const toTop = () => window.scrollTo(0, 0);
Показать или скрыть элемент можно с помощью этой одностроковой функции.
const toggle = element => element.style.display = (element.style.display === "none" ? "block" : "none");Если нужно использовать случайный цвет для какого-нибудь элемента, то можно использовать такой код с помощью методов Math.random() и padEnd().
const hexColor = () => "#" + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0');
hexColor(); // '#2db8ea'
hexColor(); // '#77dede'Чтобы удалить все куки веб-приложения нужно установить на них прошедшую дату. Если установить дату истечения куки на первую дату времени Javascript, то куки автоматически перестанут действовать.
const clearCookies = document.cookie.split(';').forEach(cookie => document.cookie = cookie.replace(/^ +/, '').replace(/=.*/, `=;expires=${ new Date(0).toUTCString()};path=/`));
const stripHtml = html => (new DOMParser().parseFromString(html, 'text/html')).body.textContent || '';
stripHtml('<h2>Heading</h2><div>Div-block <p>Paragraph</p></div>'); //'HeadingDiv-block Paragraph'const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
Перевод статьи от Anjalee Sudasinghe