Базовый набор JavaScript алгоритмов: для начинающих

Mad Eight
2 min readSep 9, 2017

--

TL;DR: Список коротких и полезных JavaScript алгоритмов.

Перевод статьи Aurélien Hervé.

Отталкиваясь от моего опыта программирования на Ruby, во время изучения JavaScript, я был разочарован тем, что в языке упущены множество таких базовых методов как merge,flattenилиuniq.

Затем я открыл для себя lodash и это было круто… До тех пор, пока я не понял, что вам стоит быть очень осторожным во время обновлений, потому что очень легко сломать что-то самым невероятным способом (это конечно произошло и со мной; представьте себе, как это прекрасно отлаживать ваш код, когда lodash изменил используемый вами метод и теперь он делает почти тоже самое, но не совсем так как должен был это делать. И как бонус вы не сразу понимаете, что причина в lodash)

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

Оговорка: Я не претендую на то чтобы превзойти lodash по эффективности или сложности. Кроме того, lodash это невероятный проект. Мои примеры это лишь несложные, простые в написании куски кода, которые работают быстро для достаточно простых случаев. Нам не всегда нужны тяжелые орудия.

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

Надеюсь это также поможет вам!

Уникальный массив

два способа унифицирование массива

Прежде чем переходить к массиву, помните, что у Set есть такие полезные методы как size или has.

Обновление объекта в массиве по свойству

Мы обновим объект с id: 3 в массиве.

Конечно “начальное” константа осталась нетронутой

Удаление объекта из массива по свойству

Давайте удалим объект из массива, для которого id === 3

Начальный массив остался не тронутым

Удаления ключа из объекта

Мы можем использовать деструктуризацию в обратном направлении:

Объединение массива объектов

Следующим кодом мы можем с легкостью объединить вместе объекты или обновить их свойства:

методы reduce и spread прекрасно работают вместе

Flatten

Преобразование многомерного массива в одномерный:

преобразование первого уровня

FromPairs

Преобразование массива в объект из пар ключ-значение

мне очень нравится деструктурирующее присвоение

Вычитание из наборов

Удаление повторяющихся элементов из двух наборов (массивов)

не так часто используемое, но вся равно полезное

Заключение

Вот и все на сегодня. Не стесняйтесь отправить мне больше примеров или попросите меня показать алгоритм, который я забыл! Я бы с радостью обновил этот список :)

Оригинал: https://hackernoon.com/basic-javascript-algorithms-toolbox-starter-kit-dc2af3ceebad

--

--