Skip to content

jalal246/move-position

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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> = {}
)
  • ArrayRange object contains:

    • from: number - Target index.
    • to: number - Destination index.
  • Opts object contains:

    • isMutate?: boolean - Default true - Mutate array input or create new one.
    • isDuplicate?: boolean - Default false - Duplicate the traveled element or not.
    • isSwap?: boolean - Default false - Swap between array elements.
    • fill?: T - Fill the original position with a value.

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

Related projects

  • builderz - Zero Configuration JS bundler.

  • validate-access - Utility functions, parse and validate a given directory with multiple entries.

  • get-info - Utility functions for projects production.

  • textics & textics-stream - Counts lines, words, chars and spaces for a given string.

Support this package by giving it a Star ⭐