0.0.4 • Published 10 years ago
loop-iterator v0.0.4
LoopIterator
Let's you run through an array and go back to the beginning when you run too far. You can also iterate backwards and keep a history.
Installation
npm install loop-iterator --saveUsage
var LoopIterator = require('loop-iterator');
var iterator = new LoopIterator(['Ina', 'Sebastian', 'Henner']);
console.log(iterator.current()); // 'Ina'
console.log(iterator.next()); // 'Sebastian'
console.log(iterator.next()); // 'Henner'
console.log(iterator.next()); // 'Ina'
console.log(iterator.prev()); // 'Henner'Set the index to whichever value you want and the iterator stays in the allowed range by circulating.
var LoopIterator = require('loop-iterator');
var iterator = new LoopIterator(['Ina', 'Sebastian', 'Henner']);
console.log(iterator.currentIndex()); // 0
console.log(iterator.currentIndex(4)); // 1
console.log(iterator.currentIndex(-1)); // 2
console.log(iterator.currentIndex(3)); // 0
var counter = 0;
setInterval(function(){
iterator.currentIndex(counter); //0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2...
iterator.current(); //'Ina', 'Sebastian', 'Henner', 'Ina', 'Sebastian', 'Henner'...
counter++;
}, 1000);If you want to use the history add a second parameter with the number of items you want to record to the constructor.
var LoopIterator = require('loop-iterator');
var iterator = new LoopIterator(['Ina', 'Sebastian', 'Henner'], 2);
console.log(iterator.next()); // 'Sebastian'
console.log(iterator.next()); // 'Henner'
console.log(iterator.next()); // 'Ina'
console.log(iterator.history(1)); // 'Henner', you can also write history() instead
console.log(iterator.history(2)); // 'Sebastian'
console.log(iterator.history(3)); // undefined, history not long enoughInstead of require you can also just use a good old script tag.
<script src="loop-iterator.js"/>Documentation
Constructor:
LoopIterator(array [, history])
array- The array you want to iterate over.history- Optional. The number of elements you want to keep in the history.
Methods:
current(): Returns the current element.next(): Iterates to the next element and returns it.prev(): Iterates to the previous element and returns it.currentIndex([index]): Returns or sets the current index.nextIndex(): Iterates to the next element and returns the index.prevIndex(): Iterates to the previous element and returns the index.history(level): Returns the n'th element in history.leveldefaults to 1.historyIndex(level): Returns the n'th index in history.leveldefaults to 1.
Release History
- 0.3.1 Fixes bug when accessing history before there is any history.
- 0.3.0 Added circulation functionality when setting the index
- 0.2.0 Optimizations
- 0.1.0 Initial release
License
Copyright 2015 Henner Wöhler. Licensed under the MIT license.