Skip to content

nodef/extra-entries

Repository files navigation

A collection of functions for operating upon Entries.
📦 Node.js, 🌐 Web, 📜 Files, 📰 Docs, 📘 Wiki.

Entries is a list of key-value pairs, with unique keys. This package includes common functions related to querying about entries, generating them, comparing one with another, finding their size, adding and removing entries, obtaining its properties, getting a part of it, getting a subset entries in it, finding an entry in it, performing functional operations, manipulating it in various ways, combining together entries or its sub-entries, of performing set operations upon it.

All functions except fromLists() take entries as 1st parameter, and expect it to be iterable. It does not need to be an array. Entries are returned by Array, Object, Set, Map.

This package is available in Node.js and Web formats. The web format is exposed as extra_entries standalone variable and can be loaded from jsDelivr CDN.

Stability: Experimental.


const entries = require('extra-entries');
// import * as entries from "extra-entries";
// import * as entries from "https://unpkg.com/extra-entries/index.mjs"; (deno)

var x = [['a', 1], ['b', 2], ['c', 3], ['d', 4], ['e', 5]];
[...entries.filter(x, v => v % 2 === 1)];
// → [ [ 'a', 1 ], [ 'c', 3 ], [ 'e', 5 ] ]

var x = [['a', 1], ['b', 2], ['c', -3], ['d', -4]];
entries.some(x, v => v > 10);
// → false

var x = [['a', 1], ['b', 2], ['c', -3], ['d', -4]];
entries.min(x);
// → -4

var x = [['a', 1], ['b', 2], ['c', 3]];
[...entries.subsets(x)].map(a => [...a]);
// → [
// →   [],
// →   [ [ 'a', 1 ] ],
// →   [ [ 'b', 2 ] ],
// →   [ [ 'a', 1 ], [ 'b', 2 ] ],
// →   [ [ 'c', 3 ] ],
// →   [ [ 'a', 1 ], [ 'c', 3 ] ],
// →   [ [ 'b', 2 ], [ 'c', 3 ] ],
// →   [ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]
// → ]


Index

Property Description
is Check if value is an iterable.
keys List all keys.
values List all values.
fromLists Convert lists to entries.
compare Compare two entries.
isEqual Check if two entries are equal.
size Find the length of an iterable.
isEmpty Check if an iterable is empty.
get Get value at key.
getAll Get values at keys.
getPath Get value at path in nested entries.
hasPath Check if nested entries has a path.
set Set value at key.
swap Exchange two values.
remove Remove value at key.
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.
head Get first value.
tail Get values except first.
take Keep first n values only.
drop Discard first n values only.
subsets List all possible subsets.
randomKey Pick an arbitrary key.
randomEntry Pick an arbitrary entry.
randomSubset Pick an arbitrary subset.
has Check if entries has a key.
hasValue Check if entries has a value.
hasEntry Check if entries has an entry.
hasSubset Check if entries has a subset.
find Find first value passing a test (default order).
findAll Find values passing a test.
search Finds key of an entry passing a test.
searchAll Find keys of entries passing a test.
searchValue Find a key with given value.
searchValueAll Finds keys with given value.
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 entries.
reduce Reduce values of entries to a single value.
filter Keep entries which pass a test.
filterAt Keep entries with given keys.
reject Discard entries which pass a test.
rejectAt Discard entries with given keys.
flat Flatten nested entries to given depth.
flatMap Flatten nested entries, based on map function.
zip Combine matching entries from all entries.
partition Segregate values by test result.
partitionAs Segregate entries by similarity.
chunk Break entries into chunks of given size.
concat Append entries from all entries, preferring last.
join Join entries together into a string.
isDisjoint Check if entries have no common keys.
unionKeys Obtain keys present in any entries.
union Obtain entries present in any entries.
intersection Obtain entries present in both entries.
difference Obtain entries not present in another entries.
symmetricDifference Obtain entries not present in both entries.
randomValue Pick an arbitrary value.



ORG DOI Coverage Status Test Coverage Maintainability