Curated collection of data structures for the JavaScript/TypeScript.
TypeScript definitions for d3-array
filter in array tree
TypeScript definitions for d3-polygon
TypeScript definitions for d3-contour
ECMAScript (ESTree) AST walker
Attach comments to estree nodes
TypeScript definitions for range-parser
Walk any kind of tree structure depth- or breadth-first. Supports promises and advanced map-reduce operations with a very small API.
Password hashing and verification for node.js
Rope-based persistent sequence type
Converts an array of items with ids and parent ids to a nested tree in a performant `O(n)` way. Runs in browsers and node.
Efficient Binary heap (priority queue, binary tree) data structure for JavaScript / TypeScript. Includes JavaScript methods, Python's heapq module methods, and Java's PriorityQueue methods.
TypeScript definitions for fnv-plus
Codecs for various data structures
TypeScript definitions for earcut
Library for fetching Country, its States and Cities
Array manipulation, ordering, searching, summarizing, etc.
Tree utilities which provides a full-featured extend and object-cloning facility, and various tools to deal with nested object structures.
Which kind of Typed Array is this JavaScript value? Works cross-realm, without `instanceof`, and despite Symbol.toStringTag.
A simple list of possible Typed Array names.
Arrays.
Is this value a JS ArrayBuffer?
An ES7/ES2016 spec-compliant `Array.prototype.includes` shim/polyfill/replacement that works as far down as ES3.
Convert deeply nested Virtus or other objects that respond to attributes to hashes and arrays
Study Ruby objects, hashes, and arrays by exposing their internal structure with trees, colors, and indentation
Filter arbitrary data trees with a concise query language.
The `blockify` gem solves some of the problems associated with complex hierarchical nested arrays and hashes. It is possible to represent an HTML file as a series of Arrays and Hashes with very deep levels of Hashes within Arrays within Hashes. Traversing such a tree is tricky at best. The methods of the `blockify` gem are included in Array, and Hash using a naming convention that should not compete with anything. We don't need to concern ourselves with the complexity of the structure and can instead focus on the base elements wherever they may be.
Trie-like, prefix-tree data structures. First, a prefix-tree based on Arrays, which differs from a traditional trie, which maps strings to values. Second, a more general prefix-tree data structure that works for any type of keys, provided those keys can be transformed to and from an array. Both of these data structures are implemented in terms of hashes.
Tokyo Cabinet is a library of routines for managing a database. The database is a simple data file containing records, each is a pair of a key and a value. Every key and value is serial bytes with variable length. Both binary data and character string can be used as a key and a value. There is neither concept of data tables nor data types. Records are organized in hash table, B+ tree, or fixed-length array.
Alf brings the relational algebra both in Shell and in Ruby. In Shell, because manipulating any relation-like data source should be as straightforward as a one-liner. In Ruby, because I've never understood why programming languages provide data structures like arrays, hashes, sets, trees and graphs but not _relations_... Let's stop the segregation ;-)
Scryglass is a ruby console tool for visualizing and actively exploring objects (large, nested, interrelated, or unfamiliar). You can navigate nested arrays, hashes, instance variables, ActiveRecord relations, and unknown Enumerable types like an expandable/collapsable file tree in an intuitive UI. Objects and child objects can also be inspected through a variety of display lenses, returned directly to the console, and more!
A DSL for building matchers that validate nested data structures. Ruby literals like classes, ranges, regexps, arrays, and hashes are automatically converted into matchers. Mismatches produce error trees with paths pointing to each failing element.