Что такое мутилс?
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 элементов, не являющихся общими для этого массива, с переданным массивом