Рубрики
Без рубрики

Как сохранить код JavaScript просто и легко читать

Arthur Arakelyan Как сохранить код JavaScript простым и простым для чтения здесь много способов решения такой же проблемы, Но некоторые решения сложны, а некоторые даже смешные. В этой статье я хочу поговорить о плохих и хороших решениях для тех же проблем. Давайте

Автор оригинала: FreeCodeCamp Community Member.

Артур Аракелян

Есть много способов решения такой же проблемы, но некоторые решения являются сложными, а некоторые даже смешные. В этой статье я хочу поговорить о плохих и хороших решениях для тех же проблем.

Давайте начнем с проблемы, которая требует от нас для удаления дубликатовных значений из массива.

Комплекс – удаление дубликатов с использованием Foreach

Во-первых, мы создаем новый пустой массив, затем мы используем foreach () Способ выполнения приведенной функции один раз для каждого элемента массива. В конце концов, мы проверяем, существует ли значение в новом массиве, а если нет, мы добавляем его.

function removeDuplicates(arr) {     const uniqueVals = [];      arr.forEach((value,index) => {            if(uniqueVals.indexOf(value) === -1) {           uniqueVals.push(value);       }     });  return uniqueVals;}

Простые – удаление дубликатов с использованием фильтра

Фильтр Метод создает новый массив со всеми элементами, которые проходят тест, реализованный предоставленной функцией. По сути, мы повторяем на массиве и, для каждого элемента проверьте, если первая позиция этого элемента в массиве равна текущей позиции. Конечно, эти два позиции различны для дубликатов элементов.

function removeDuplicates(arr) {  return arr.filter((item, pos) => arr.indexOf(item) === pos)}

Простые – удаление дубликатов с использованием набора

ES6 предоставляет Установить объект, который делает вещи намного проще. Установить Позволяет только уникальные значения, поэтому при прохождении в массиве он удаляет любые дубликаты значений.

Однако, если вам нужен массив с уникальными элементами, почему бы не использовать Установить Право с самого начала?

function removeDuplicates(arr) {   return [...new Set(arr)];}

Давайте перейдем и решите вторую проблему, которая требует, чтобы мы написали функцию, которая принимает массив отчетных неотрицательных целых чисел, делают их подряд и вернуть количество пропущенных чисел.

Для Const Arr = [4, 2, 6, 8] вывод должен быть CountmissingNumbers (Arr)

Как вы можете видеть 3 , 5 и 7 не хватает

Комплекс – решение с использованием сортировки и для петли

Чтобы получить наименьшее и наибольшее количество, нам нужно Сортировать их в порядке возрастания, и для этой цели мы используем Сортировать метод. Затем мы цикла с наименьшего числа к наибольшему числу. Каждый раз, мы проверяем, существует ли последовательное число в массиве или нет, а если нет, мы увеличиваем счетчик.

function countMissingNumbers(arr) {    arr.sort((a,b) => a-b);        let count = 0;        const min = arr[0];        const max = arr[arr.length-1];    for (i = min; i

Простое – решение, используя math.max и math.min

Это решение имеет простое объяснение: Math.max () Функция возвращает наибольшее количество в массиве и Math.min () Возвращает наименьшее число в массиве.

Во-первых, мы находим, сколько чисел будет в массиве, если бы не пропускали номера. Для этого мы используем следующую формулу MaxNumber - Minnuber + 1 И разница между результатом этого и длиной массива даст нам количество пропущенных чисел.

function countMissingNumbers(arr) {      return Math.max(...arr) - Math.min(...arr) + 1 - arr.length;}

Последняя проблема, которую я хочу привести в качестве примера, – это проверить, является ли строка Палиндром или нет.

*A палиндром это строка, которая читает одинаковую левую справа и справа налево.

Комплекс – Проверка, используя для цикла

В этом варианте мы циклируем по строке, начиная с первого символа до половины длины строки. Индекс последнего символа в строке является String.Length-1, второй к последнему символу является String.Length-2, и так далее. Таким образом, здесь мы проверяем, является ли символ указанным индексом с начала равен символу по указанному индексу в конце. Если они не равны, мы возвращаем ложь.

function checkPalindrome(inputString) {    let length = inputString.length   for (let i =0; i

Просто – проверка, используя обратное и присоединиться

Я думаю, что это простое решение не требует объяснения, как это говорит о себе. Мы просто создаем массив из строки, используя Распространение оператора Тогда Обратный массив, затем снова включите его в строку, используя Присоединяйтесь к Способ и сравните его с исходной строкой.

function checkPalindrome(string) {   return string === [...string].reverse().join('');}

Будь проще!

Зачем усложнять, когда есть простые способы? Я надеюсь, что вы нашли эту статью интересную. Хорошего дня и стараюсь не усложнять простые вещи в жизни:)

Спасибо за ваши хлопья?