Паттерн: Итератор (Iterator)
Исходник: Итератор на javascript, прототипнаяверсия, язык: javascript [code #557, hits: 6758]
автор: - [добавлен: 01.06.2008]
  1. Iterator = function(array) {
  2. var _array = array;
  3. var _current = 0;
  4.  
  5. this.setArray = function(array) {
  6. _array = array;
  7. if (_current > (_array.length - 1)) {
  8. _current = _array.length;
  9. }
  10. };
  11.  
  12. this.get = function() {
  13. return _array[_current];
  14. };
  15.  
  16. this.current = function() {
  17. return _current;
  18. };
  19.  
  20. this.next = function() {
  21. return (_current != (_array.length - 1)) ? _current++ : false;
  22. };
  23.  
  24. this.prev = function() {
  25. return (_current != 0) ? _current-- : false;
  26. };
  27.  
  28. this.reset = function() {
  29. _current = arguments[0] ? parseInt(arguments[0]) : 0;
  30. };
  31.  
  32. this.slice = function(from /*, to*/) {
  33. return _array.slice(from, arguments[1]);
  34. };
  35. };
Реализация двунаправленного итератора с помощью массива.

+добавить реализацию