Cue, seek, or cycle items in JavaScript in node or the browser
npm install cueing --save
var cueing = require('cueing')
var letters = cueing(['a', 'b', 'c'])
// cue the last index and then read from there
letters.cue(-1) // => letters
letters.seek(0) // => 'c'
letters.seek(1) // => 'a'
// manually move the needle
letters.needle(0)
// seek backwards
letters.seek(-1) // => 'c'
// seeking (or cueing) will loop around
letters.seek(-4) // => 'b'
- Get a new
cueing
instance pool
:number|{length:number}
length or array(-like) of values- →
cueing
instance
var tracks = cueing(['1.mp3', '2.mp3', '3.mp3'])
tracks.join() // '1.mp3,2.mp3,3.mp3'
tracks instanceof cueing // true
tracks instanceof Array // true
Array.isArray(tracks) // false
cueing(3).every(function(v, i, range) {
// Cueing objects are made dense for use with array iterators
return undefined === v && i in range && range instanceof cueing
}) // true
var cueing = require('cueing')
var list = cueing(['a', 'b', 'c'])
+list // 0
isFinite(list) // true
list.needle(2) // move the needle to a new index
2 == list // true
+list // 2
String(list) // '2'
list[list] // 'c'
- Manually move the needle to
index
index
:number|cueing
destination index- →
this
- Move the needle by
offset
offset
:number|cueing
+/- integer to move the needle by- →
this
.cue
the offset and get the value thereoffset
:number|cueing
+/- integer to move the needle by- →
*
- Store the current needle position for recalling later
- →
this
- Recall stored cue point(s)
index
:number|cueing
+/- index to read.0
reads the oldest point.-1
reads the newest.- →
cueing
instance at recalled state
- Clear stored cue points
- →
this
- Clone (copy) a
cueing
instance at its current state to a new instance - →
cueing
clone
- Get the
pool
index that isoffset
away fromstart
- →
number
cueing.cue(['a', 'b', 'c'], -1) // => 2
cueing.cue(['a', 'b', 'c'], 1, -2) // => 2
- Get the
pool
value that isoffset
away fromstart
- →
*
cueing.seek(['a', 'b', 'c'], 1, -1) // => 'a'
cueing.seek(['a', 'b', 'c'], 0, 5) // => 'b'
- Push
point
ontoarray
if different from last point - →
array
reference
cueing.store([1, 5], 3) // => [1, 5, 3]
cueing.store([1, 5], 5) // => [1, 5]
cueing.store([1, 5], 1) // => [1, 5, 1]