Home > HookShot

HookShot

HookShot is a project mainly written in JavaScript, it's free.

A LinkedList in JavaScript

HookShot

This is a simple linked list, implemented in JS. At its core is an object called a Link, which is simply the wrapper for the actual data. The HookShot has an internal pointer that can be reset().

The code is documented well enough... but here's what you can do to a HookShot:

  • iteration: next(), reset(), forEach(), where()
  • mutation: push(), pop(), detachCurrent(), join(), select()
  • transformation: flatten(), clone()
  • query: select(), where()

Usage:

var l = new HookShot('a')
    .push('b')
    .push('c')
    .push('d')
    .push('e');

var w = l.where(function(value, idx){
    if(value == 'c' || value == 'e') return true;
});

// w contains two links, with values of 'c' and 'e'
// l remains unchanged

var s = l.select(function(value, idx){
    if(value == 'c') return true;
});

// s contains 1 link, with value of 'c'
// l now contains only 4 links

var a = l.flatten();
// a is now a simple array of the ordered values from s
// ['a', 'b', 'd', 'e']
// l is unchanged

l.forEach(function(val, idx){
    console.log(val);
});
// logs: 'a', 'b', 'd', 'e'
Previous:ftw