An object is a collection of properties, with associated values.

Usage no npm install needed!

<script type="module">
  import extraObjectMin from 'https://cdn.skypack.dev/extra-object.min';


An object is a collection of properties, with associated values. :running: :vhs: :package: :moon: :ledger:

Methods as separate packages:

Methods look like:

  • swap(): doesn't modify the object itself (pure).
  • swap$(): modifies the object itself (update).

In the future when you think of just giving up on life, remember that the letter was in your hands, the cab was at the gate, only if you had thought about it once more, your entire life would have been better. (1)

Stability: Experimental.
This is browserified, minified version of extra-object.
It is exported as global variable object.
CDN: unpkg, jsDelivr.

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

var x = {a: 1, b: 2, c: 3, d: 4};
object.swap(x, 'a', 'b');
// { a: 2, b: 1, c: 3, d: 4 }

var x = {a: 1, b: 2, c: 3, d: 4};
var y = {b: 20, c: 30, e: 50};
object.intersection(x, y);
// { b: 2, c: 3 }

var x = {a: 1, b: 2, c: 3, d: -2};
object.searchAll(x, v => Math.abs(v) === 2);
// [ 'b', 'd' ]

var x = {a: 1, b: 2, c: 3};
// [
//   {},
//   { a: 1 },
//   { b: 2 },
//   { a: 1, b: 2 },
//   { c: 3 },
//   { a: 1, c: 3 },
//   { b: 2, c: 3 },
//   { a: 1, b: 2, c: 3 }
// ]


Method Action
is Checks if value is object.
get Gets value at key.
set Sets value at key.
remove Deletes an entry.
swap Exchanges two values.
size Gets size of object.
head Gets first entry.
take Keeps first n entries only.
shift Removes first entry.
fromEntries Creates object from entries.
concat Combines entries from objects, preferring last.
flat Flattens nested object to given depth.
chunk Breaks object into chunks of given size.
filterAt Gets object with given keys.
map Updates values based on map function.
filter Keeps entries which pass a test.
reduce Reduces values to a single value.
range Finds smallest and largest entries.
count Counts values which satisfy a test.
partition Segregates values by test result.
cartesianProduct Lists cartesian product of objects.
some Checks if any value satisfies a test.
zip Combines entries from objects.
union Gives entries present in any object.
intersection Gives entries present in both objects.
difference Gives entries of object not present in another.
symmetricDifference Gives entries not present in both objects.
isDisjoint Checks if objects have no common keys.
key Picks an arbitrary key.
value Picks an arbitrary value.
entry Picks an arbitrary entry.
subset Picks an arbitrary subset.
isEmpty Checks if object is empty.
isEqual Checks if two objects are equal.
compare Compares two objects.
find Finds value of an entry passing a test.
search Finds key of an entry passing a test.
scanWhile Finds key of first entry not passing a test.