move-position

Move element in a given array from one index to another ..with some extra functions.

npm install move-position

API

move

Moves element form one index to another with ability to fill each position and mutate the input array.

function move<T>(
  arr: T[] = [],
  movingMap: ArrayRange | ArrayRange[],
  Opts<T> = {}
)

Example - move

Trying default options:

const INPUT = ["first", "second", "third", "fourth"];

const movingMap = [{ from: 0, to: 3 }];
const result = move(INPUT, movingMap);

>> result= ["fourth", "second", "third", "first"];

Enables isDuplicate:true:

const INPUT = ["first", "second", "third", "fourth"];

const movingMap = [{ from: 0, to: 3 }];
const result = move(INPUT, movingMap, { isDuplicate: true });

//
>> result= ["first", "second", "third", "first"];

With nullish:

const INPUT = ["first", "second", "third", "fourth"];

const movingMap = [{ from: 0, to: 3 }];
const result = move(INPUT, movingMap, {
  isDuplicate: false,
  isSwap: false,
});

>> result = [null, "second", "third", "first"];

With custom fill:

const INPUT = ["first", "second", "third", "fourth"];

const movingMap = [{ from: 0, to: 3 }];
const result = move(INPUT, movingMap, {
  fill: "emptiness"
});

>> result = ["emptiness", "second", "third", "first"];

compare

Compare elements of the first array with the rest of arrays.

function compare<T>(...args: T[][])

Example - compare

const diff = compare(["a", "b", "c"], ["b", "c", "e"]);

> diff = ["a"]

compareBoth

Compare elements in all inputs and gets the difference.

function compareBoth<T>(...args: T[][])

Example - compareBoth

const allDiff = compareBoth(["a", "b", "c"], ["b", "c", "e"]);

> allDiff = ["a", "e"]

flatten

Flatten an array

function flatten<T>(unFlatten: T[])

Example - flatten

const flattened = flatten([[1, [2, 3]], [1, [2, 3]], 0]);

> flattened = [1, 2, 3, 1, 2, 3, 0]

toArray

Convert an input to array

function flatten<T>(unFlatten: T[])

Example - toArray

const array = toArray("a");

> array = ["a"]

Tests

npm test

License

This project is licensed under the MIT

Support this package by giving it a Star ⭐