Coder Social home page Coder Social logo

nodef / extra-lists Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 376 KB

A collection of functions for operating upon Lists.

Home Page: https://www.npmjs.com/package/extra-lists

License: MIT License

JavaScript 9.95% TypeScript 90.05%
extra lists chunk compare concat count difference drop count-as entries

extra-lists's Introduction

A collection of functions for operating upon Lists.
πŸ“¦ Node.js, 🌐 Web, πŸ“œ Files, πŸ“° Docs, πŸ“˜ Wiki.

Lists is a pair of key list and value list, with unique keys. It is an an alternative to Entries. Unless entries are implemented as structs by v8, lists should be more space efficient. This package includes common functions related to querying about lists, 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 lists or its sub-entries, of performing set operations upon it. All functions except fromEntries() take lists as 1st parameter.

This package is available in Node.js and Web formats. To use it on the web, simply use the extra_lists global variable after loading with a <script> tag from the jsDelivr CDN.

Stability: Experimental.


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

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

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

var x = [['a', 'b', 'c', 'd'], [1, 2, -3, -4]];
xlists.min(x);
// β†’ -4

var x = [['a', 'b', 'c'], [1, 2, 3]];
[...xlists.subsets(x)].map(a => [[...a[0]], [...a[1]]]);
// β†’ [
// β†’   [ [], [] ],
// β†’   [ [ 'a' ], [ 1 ] ],
// β†’   [ [ 'b' ], [ 2 ] ],
// β†’   [ [ 'a', 'b' ], [ 1, 2 ] ],
// β†’   [ [ 'c' ], [ 3 ] ],
// β†’   [ [ 'a', 'c' ], [ 1, 3 ] ],
// β†’   [ [ 'b', 'c' ], [ 2, 3 ] ],
// β†’   [ [ 'a', 'b', 'c' ], [ 1, 2, 3 ] ]
// β†’ ]


Index

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


References



ORG Coverage Status Test Coverage Maintainability

extra-lists's People

Contributors

wolfram77 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.