Hi,

For a gallery I was writing, I needed to traverse an array in a loop
way, allowing me to move it forward or backward to create a carousel
effect on an image list, so I wrote this tiny "class" for that. As you
can see I didn't write any validations. You are free to fix, extend,
derivate or copy and I would appreciate if you post any modifications
here.


/*--------------------------*/

function Loopr(_arr) {
        this.array    = _arr;
        this.position = -1;

        this.next = function() {
                (!(++this.position < this.array.length)) && (this.position = 0);
                return this.array[this.position];
        }

        this.prev = function() {
                (!(--this.position > -1)) && (this.position = this.array.length 
-
1);
                return this.array[this.position];
        }
}

// Tests
var test = ['a', 'b', 'c'], loopr, resultTests;

loopr = new Loopr(test);

resultTests = [];
resultTests.push(loopr.next());
resultTests.push(loopr.next());
resultTests.push(loopr.next());
resultTests.push(loopr.next());
resultTests.push(loopr.next());
resultTests.push(loopr.next());

// result: 'a', 'b', 'c', 'a', 'b', 'c'

loopr = new Loopr(test);

resultTests = [];
resultTests.push(loopr.prev());
resultTests.push(loopr.prev());
resultTests.push(loopr.prev());
resultTests.push(loopr.prev());
resultTests.push(loopr.prev());
resultTests.push(loopr.prev());

// result: 'c', 'b', 'a', 'c', 'b', 'a'

/*--------------------------*/

I hope it helps someone.

Leonardo Braga
@LeonardoBraga

-- 
You received this message because you are subscribed to the Google Groups "The 
JSMentors JavaScript Discussion Group" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jsmentors?hl=en.

Reply via email to