Вы когда-нибудь задумывались о неизменной версии методов прототипа массива?
например) Array.prototype.push возвращает новый массив.
immutable-array-prototype представляет это.
Почему?
ECMAScript Array
имеет несколько изменяемых методов.
Эта библиотека предоставляет неизменяемую версию каждого метода.
@immutable-array/prototype
включает неизменяемую версию этих методов.
npm install @immutable-array/prototype
Или, если вам нужен один метод, вы можете использовать метод как пакет.
npm install @immutable-array/pop
npm install @immutable-array/push
npm install @immutable-array/shift
npm install @immutable-array/unshift
npm install @immutable-array/sort
npm install @immutable-array/reverse
npm install @immutable-array/fill
npm install @immutable-array/splice
npm install @immutable-array/copy-within
Пример
Использование простое. Эта библиотека предоставляет тот же API и поведение без первого аргумента.
import { sort, unshift, push, fill, splice, pop, reverse, copyWithin, shift } from "@immutable-array/prototype"; describe("prototype", () => { it("shift", () => { assert.deepStrictEqual(shift(["a", "b", "c", "d", "e"]), ["b", "c", "d", "e"]); }); it("unshift", () => { assert.deepStrictEqual(unshift(["a", "b", "c", "d", "e"], "x"), [ "x", "a", "b", "c", "d", "e" ]); }); it("pop", () => { assert.deepStrictEqual(pop(["a", "b", "c", "d", "e"]), ["a", "b", "c", "d"]); }); it("push", () => { assert.deepStrictEqual(push(["a", "b", "c", "d", "e"], "x"), [ "a", "b", "c", "d", "e", "x" ]); }); it("splice", () => { assert.deepStrictEqual(splice(["a", "b", "c", "d", "e"], 0, 1, "x"), [ "x", "b", "c", "d", "e" ]); }); it("sort", () => { assert.deepStrictEqual(sort(["e", "a", "c", "b", "d"]), ["a", "b", "c", "d", "e"]); }); it("reverse", () => { assert.deepStrictEqual(reverse(["a", "b", "c", "d", "e"]), ["e", "d", "c", "b", "a"]); }); it("fill", () => { assert.deepStrictEqual(fill(new Array(5), "x"), ["x", "x", "x", "x", "x"]); }); it("copyWithin", () => { assert.deepStrictEqual(copyWithin(["a", "b", "c", "d", "e"], 0, 3, 4), ["d", "b", "c", "d", "e"]); }); });
Запросы на вытягивание и звезды всегда приветствуются.