extra-array.web 3.0.135
Install from the command line:
Learn more about npm packages
$ npm install @nodef/extra-array.web@3.0.135
Install via package.json:
"@nodef/extra-array.web": "3.0.135"
About this version
An array is a collection of values, stored contiguously.
π¦ Node.js,
π Web,
π Files,
π° Docs,
π Wiki.
All functions except from*()
take array as 1st parameter. Some methods
accept a map function for faster comparision (like unique). I find the
map-approach beautiful, which i learned from Haskell's sortOn()
. You can
notice that i have followed Javascript naming scheme as far as possible.
Some names are borrowed from Haskell, Python, Java, Processing.
Methods look like:
-
swap()
: doesn't modify the array itself (pure). -
swap$()
: modifies the array itself (update).
This package is available in Node.js and Web formats. The web format
is exposed as extra_array
standalone variable and can be loaded from
jsDelivr CDN.
Stability: Experimental.
const array = require('extra-array');
// import * as array from "extra-array";
// import * as array from "https://unpkg.com/extra-array/index.mjs"; (deno)
var x = [1, 2, 3];
array.get(x, -1);
// β 3
var x = [1, 2, 3, 4];
array.swap(x, 0, 1);
// β [2, 1, 3, 4]
var x = [1, 2, 3, 4];
array.rotate(x, 1);
// β [4, 1, 2, 3]
[...array.permutations([1, 2, 3])];
// β [
// [], [ 1 ],
// [ 2 ], [ 3 ],
// [ 1, 2 ], [ 1, 3 ],
// [ 2, 1 ], [ 2, 3 ],
// [ 3, 1 ], [ 3, 2 ],
// [ 1, 2, 3 ], [ 1, 3, 2 ],
// [ 2, 1, 3 ], [ 2, 3, 1 ],
// [ 3, 1, 2 ], [ 3, 2, 1 ]
// ]
Property | Description |
---|---|
is | Check if value is an array. |
keys | List all indices. |
values | List all values. |
entries | List all index-value pairs. |
from | Convert an iterable to array. |
from$ | Convert an iterable to array. |
fromRange | Generate array from given number range. |
fromInvocation | Generate array from repeated function invocation. |
fromApplication | Generate array from repeated function application. |
compare | Compare two arrays (lexicographically). |
isEqual | Check if two arrays are equal. |
index | Get zero-based index for element in array. |
indexRange | Get index range for part of array. |
length | Find the length of an array. |
isEmpty | Check if an array is empty. |
get | Get value at index. |
getAll | Get values at indices. |
getPath | Get value at path in a nested array. |
hasPath | Check if nested array has a path. |
set | Set value at index. |
set$ | Set value at index. |
setPath$ | Set value at path in a nested array. |
swap | Exchange two values. |
swap$ | Exchange two values. |
remove | Remove value at index. |
remove$ | Remove value at index. |
removePath$ | Remove value at path in a nested array. |
count | Count values which satisfy a test. |
countAs | Count occurrences of values. |
min | Find smallest value. |
minEntry | Find smallest entry. |
max | Find largest value. |
maxEntry | Find largest entry. |
range | Find smallest and largest values. |
rangeEntries | Find smallest and largest entries. |
slice | Get part of an array. |
slice$ | Get part of an array. |
head | Get first value. |
last | Get last value. |
tail | Get values except first. |
init | Get values except last. |
middle | Get values from middle. |
take | Keep first n values only. |
takeRight | Keep last n values only. |
takeWhile | Keep values from left, while a test passes. |
takeWhileRight | Keep values from right, while a test passes. |
drop | Discard first n values only. |
dropRight | Discard last n values only. |
dropWhile | Discard values from left, while a test passes. |
dropWhileRight | Discard values from right, while a test passes. |
prefixes | List all possible prefixes. |
suffixes | List all possible suffixes. |
infixes | List all possible infixes. |
subsequences | List all possible subsequences. |
permutations | List all possible permutations. |
randomValue | Pick an arbitrary value. |
randomPrefix | Pick an arbitrary prefix. |
randomSuffix | Pick an arbitrary suffix. |
randomInfix | Pick an arbitrary infix. |
randomSubsequence | Pick an arbitrary subsequence. |
randomPermutation | Pick an arbitrary permutation. |
randomPermutation$ | Pick an arbitrary permutation. |
includes | Check if array has a value. |
indexOf | Find first index of a value. |
lastIndexOf | Find last index of a value. |
find | Find first value passing a test. |
findRight | Find last value passing a test. |
scanWhile | Scan from left, while a test passes. |
scanWhileRight | Scan from right, while a test passes. |
scanUntil | Scan from left, until a test passes. |
scanUntilRight | Scan from right, until a test passes. |
search | Find index of first value passing a test. |
searchRight | Find index of last value passing a test. |
searchAll | Find indices of values passing a test. |
searchValue | Find first index of a value. |
searchValueRight | Find last index of a value. |
searchValueAll | Find indices of value. |
searchInfix | Find first index of an infix. |
searchInfixRight | Find last index of an infix. |
searchInfixAll | Find indices of an infix. |
searchSubsequence | Find first index of a subsequence. |
hasValue | Check if array has a value. |
hasPrefix | Check if array starts with a prefix. |
hasSuffix | Check if array ends with a suffix. |
hasInfix | Check if array contains an infix. |
hasSubsequence | Check if array has a subsequence. |
hasPermutation | Check if array has a permutation. |
forEach | Call a function for each value. |
some | Check if any value satisfies a test. |
every | Check if all values satisfy a test. |
map | Transform values of an array. |
map$ | Transform values of an array. |
reduce | Reduce values of array to a single value. |
reduceRight | Reduce values from right, to a single value. |
filter | Keep values which pass a test. |
filter$ | Keep values which pass a test. |
filterAt | Keep values at given indices. |
reject | Discard values which pass a test. |
reject$ | Discard values which pass a test. |
rejectAt | Discard values at given indices. |
accumulate | Produce accumulating values. |
flat | Flatten nested array to given depth. |
flatMap | Flatten nested array, based on map function. |
zip | Combine values from arrays. |
fill | Fill with given value. |
fill$ | Fill with given value. |
sort | Arrange values in order. |
sort$ | Arrange values in order. |
push | Add value to the end. |
push$ | Add values to the end. |
pop | Remove last value. |
pop$ | Remove last value. |
shift | Remove first value. |
shift$ | Remove first value. |
unshift | Add values to the start. |
unshift$ | Add values to the start. |
copy | Copy part of array to another. |
copy$ | Copy part of array to another. |
copyWithin | Copy part of array within. |
copyWithin$ | Copy part of array within. |
moveWithin | Move part of array within. |
moveWithin$ | Move part of array within. |
splice | Remove or replace existing values. |
splice$ | Remove or replace existing values. |
split | Break array considering test as separator. |
splitAt | Break array considering indices as separator. |
cut | Break array when test passes. |
cutRight | Break array after test passes. |
cutAt | Break array at given indices. |
cutAtRight | Break array after given indices. |
group | Keep similar values together and in order. |
partition | Segregate values by test result. |
partitionAs | Segregate values by similarity. |
chunk | Break array into chunks of given size. |
cycle | Give values that cycle through array. |
repeat | Repeat an array given times. |
reverse | Reverse the values. |
reverse$ | Reverse the values. |
rotate | Rotate values in array. |
rotate$ | Rotate values in array. |
intersperse | Place a separator between every value. |
interpolate | Estimate new values between existing ones. |
intermix | Place values of an array between another. |
interleave | Place values from iterables alternately. |
concat | Append values from arrays. |
concat$ | Append values from arrays. |
join | Join values together into a string. |
isUnique | Check if there are no duplicate values. |
isDisjoint | Check if arrays have no value in common. |
unique | Remove duplicate values. |
union | Give values present in any array. |
union$ | Give values present in any array. |
intersection | Gives values present in both arrays. |
difference | Give values not present in another array. |
symmetricDifference | Give values not present in both arrays. |
cartesianProduct | List cartesian product of arrays. |