diff options
Diffstat (limited to 'web-ui/app/js/helpers/iterator.js')
| -rw-r--r-- | web-ui/app/js/helpers/iterator.js | 43 | 
1 files changed, 43 insertions, 0 deletions
| diff --git a/web-ui/app/js/helpers/iterator.js b/web-ui/app/js/helpers/iterator.js new file mode 100644 index 00000000..9d8358a7 --- /dev/null +++ b/web-ui/app/js/helpers/iterator.js @@ -0,0 +1,43 @@ +define(function () { + +  return Iterator; + +  function Iterator(elems, startingIndex) { + +    this.index = startingIndex || 0; +    this.elems = elems; + +    this.hasPrevious = function () { +      return this.index != 0; +    }; + +    this.hasNext = function () { +      return this.index < this.elems.length - 1; +    }; + +    this.previous = function () { +      return this.elems[--this.index]; +    }; + +    this.next = function () { +      return this.elems[++this.index]; +    }; + +    this.current = function () { +      return this.elems[this.index]; +    }; + +    this.hasElements = function () { +      return this.elems.length > 0; +    }; + +    this.removeCurrent = function () { +      var removed = this.current(), +        toRemove = this.index; + +      !this.hasNext() && this.index--; +      this.elems.remove(toRemove); +      return removed; +    }; +  } +});
\ No newline at end of file | 
