Что такое мутилс?

mutils — третья в серии библиотек, которые я создал, пытаясь добавить к массивам дополнительные функции. Давайте изучим историю, чтобы поместить эту библиотеку в контекст.

MercedUtils: первая версия этой библиотеки. Я хотел добавить больше методов массива и обнаружил, что могу добавить их в прототип массива. Эта библиотека добавляет несколько методов к прототипу массива, в этот момент я узнал от других, почему это анти-шаблон… потому что, если бы все просто добавляли функции в массивы, возможно, были бы конфликты имен. Поэтому я создал новую библиотеку, используя другой подход.

BetterTypes. В этой итерации я создал новые классы, которые будут принимать массив, и с помощью функции eval и некоторых других инструментов я смог воспроизвести все методы массива, но взаимодействие с пользователем было определенно не таким гладким. Затем я узнал, что могу расширить класс массива.

Это подводит нас к mutils, где, расширяя объекты Array и Set, я могу добавить множество методов массива.

Как вы устанавливаете

Установите в свой проект с помощью npm

npm install mutils_am

их импортировать в ваш файл

const {Rand, MSet, MArray} = require("mutils_am")

Рэнд

Объект Rand имеет несколько методов Random number.

Rand.index(Array) =› Возвращает случайное число 0 — Array.length

Rand.range (Low, High) =› Возвращает число между низким и высоким

Rand.num (Число) =› Возвращает случайное число 0 — Число

MArray

Создайте новый объект MArray вот так…

const myArray = new MArray(1,2,3,4,5)

Вдобавок ко всем обычным методам массива (выталкивание, сдвиг, снятие сдвига, нажатие, фильтрация, сопоставление и т. д.) у вас есть все эти дополнительные методы!

MArray.random() =› возвращает случайный элемент из массива

MArray.remove((value, index) =› return boolean) =› противоположность filter, удаление элементов, в которых функция обратного вызова возвращает значение true, возвращает MArray

MArray.undupe() =› возвращает MArray массива с удаленными дубликатами

MArray.randElim() =› удаляет случайный элемент и возвращает его

MArray.leaveOne() =› Случайным образом удаляет из массива все элементы, кроме одного, и возвращает MArray удаленных элементов.

MArray.leaveSome(number) =› Случайным образом удаляет из массива все элементы, кроме определенного, и возвращает MArray удаленных элементов.

MArray.findRemove(value) =› находит и удаляет значение из массива, возвращая удаленное значение

MArray.addLength(length, value) =› увеличивает массив до желаемой длины и заполняет дополнительные места переданным значением. Возвращает себя.

MArray.lessLengthRight(length) =› удаляет элементы из конца массива до нужной длины, возвращает массив удаленных значений. Возвращает себя.

MArray.lessLengthRight(length) =› удаляет элементы из начала массива до нужной длины, возвращает массив удаленных значений. Возвращает себя.

MArray.someMore((value, index) =› return boolean, number) =› возвращает значение true, если количество итераций, возвращающих значение true, равно или больше числового аргумента

MArray.everyLess((value, index) =› return boolean, number) =› возвращает true, если количество итераций, возвращающих false, равно или меньше числового аргумента

MArray.MapToObject((value, index) =› return [key, value]) =› аналогично map, но возвращает объект, функция обратного вызова должна возвращать массив из двух элементов [key, value]

MArray.MapToMap((value, index) =› return [key, value]) =› как map, но возвращает Map, функция обратного вызова должна возвращать массив из двух элементов [key, value]

MArray.MapToSet((значение, индекс) =› return [ключ, значение]) =› аналогично карте, но возвращает набор

MArray.MapToUnique((value, index) =› return [key, value]) =› аналогично карте, но возвращает массив только уникальных элементов

MArray.squish() =› удаляет первый и последний элементы массива и возвращает их в Marray

MArray.shuff() =› возвращает перемешанную версию Marray

MArray.toStrings() =› возвращает массив со всеми элементами, преобразованными в строки

MArray.toNums() =› возвращает массив со всеми элементами, представленными как числа

MArray.toBools() =› возвращает массив со всеми элементами, преобразованными в логические значения

MArray.iPop() =› неизменное всплывающее окно, возвращает новую версию Marray с последним извлеченным значением

MArray.iPush(value) =› неизменяемая отправка, возвращает новую версию Marray со значением, помещенным в конец массива

MArray.iShift() =› неизменяемый сдвиг, возвращает новую версию Marray с удаленным первым значением

MArray.iUnshift(value) =› неизменяемый сдвиг, возвращает новую версию Marray со значением, добавленным в начале массива

MArray.iSplice(index, amount) =› неизменяемый сплайсинг, возвращает новую версию Marray с указанным количеством удаленных элементов, начиная с указанного индекса.

MSet

Как вы создаете MSet

const pset1 = new MSet([1, 2, 3, 4]);

MSet.isSuperset(MSet) =› Возвращает true, если набор MSet является надмножеством набора MSet, переданного в качестве аргумента.

MSet.union(MSet) =› Возвращает набор MSet, представляющий собой комбинацию этого набора MSet и набора MSet, переданного в качестве аргумента.

MSet.intersection(MSet) =› возвращает набор общих элементов двух наборов MSet.

MSet.symmetricDifference(MSet) =› возвращает набор элементов MSet, которые не являются общими для обоих наборов MSet.

MSet.difference(MSet) =› возвращает MSet элементов, не являющихся общими для этого массива, с переданным массивом