summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid DeSandro <desandrocodes@gmail.com>2016-06-15 13:45:54 -0400
committerDavid DeSandro <desandrocodes@gmail.com>2016-06-15 15:12:01 -0400
commit31e7aab701c5db41cf88e2f6e14b64fa22e5c854 (patch)
tree40b69b278ad14cea7057b6953ea3ae505bb30c75
parent65a548a1af22f8a38fb15279162faa313a2d6757 (diff)
downloadflickity-31e7aab701c5db41cf88e2f6e14b64fa22e5c854.zip
flickity-31e7aab701c5db41cf88e2f6e14b64fa22e5c854.tar.gz
flickity-31e7aab701c5db41cf88e2f6e14b64fa22e5c854.tar.bz2
🛠 refactor for loops, use forEach, map
-rw-r--r--js/add-remove-cell.js12
-rw-r--r--js/animate.js4
-rw-r--r--js/flickity.js51
-rw-r--r--js/lazyload.js10
-rw-r--r--js/page-dots.js5
5 files changed, 34 insertions, 48 deletions
diff --git a/js/add-remove-cell.js b/js/add-remove-cell.js
index e9767f3..aeea0a8 100644
--- a/js/add-remove-cell.js
+++ b/js/add-remove-cell.js
@@ -33,10 +33,9 @@
// append cells to a document fragment
function getCellsFragment( cells ) {
var fragment = document.createDocumentFragment();
- for ( var i=0, len = cells.length; i < len; i++ ) {
- var cell = cells[i];
+ cells.forEach( function( cell ) {
fragment.appendChild( cell.element );
- }
+ });
return fragment;
}
@@ -99,15 +98,16 @@ Flickity.prototype.prepend = function( elems ) {
Flickity.prototype.remove = function( elems ) {
var cells = this.getCells( elems );
var selectedIndexDelta = 0;
- var i, len, cell;
+ var len = cells.length;
+ var i, cell;
// calculate selectedIndexDelta, easier if done in seperate loop
- for ( i=0, len = cells.length; i < len; i++ ) {
+ for ( i=0; i < len; i++ ) {
cell = cells[i];
var wasBefore = this.cells.indexOf( cell ) < this.selectedIndex;
selectedIndexDelta -= wasBefore ? 1 : 0;
}
- for ( i=0, len = cells.length; i < len; i++ ) {
+ for ( i=0; i < len; i++ ) {
cell = cells[i];
cell.remove();
// remove item from collection
diff --git a/js/animate.js b/js/animate.js
index fa5c089..d896188 100644
--- a/js/animate.js
+++ b/js/animate.js
@@ -186,7 +186,7 @@ proto.shiftWrapCells = function( x ) {
};
proto._shiftCells = function( cells, gap, shift ) {
- for ( var i=0, len = cells.length; i < len; i++ ) {
+ for ( var i=0; i < cells.length; i++ ) {
var cell = cells[i];
var cellShift = gap > 0 ? shift : 0;
cell.wrapShift( cellShift );
@@ -198,7 +198,7 @@ proto._unshiftCells = function( cells ) {
if ( !cells || !cells.length ) {
return;
}
- for ( var i=0, len = cells.length; i < len; i++ ) {
+ for ( var i=0; i < cells.length; i++ ) {
cells[i].wrapShift( 0 );
}
};
diff --git a/js/flickity.js b/js/flickity.js
index 54dcb04..8b661d6 100644
--- a/js/flickity.js
+++ b/js/flickity.js
@@ -131,10 +131,9 @@ Flickity.prototype._create = function() {
window.addEventListener( 'resize', this );
}
- for ( var i=0, len = Flickity.createMethods.length; i < len; i++ ) {
- var method = Flickity.createMethods[i];
+ Flickity.createMethods.forEach( function( method ) {
this[ method ]();
- }
+ }, this );
if ( this.options.watchCSS ) {
this.watchCSS();
@@ -226,12 +225,9 @@ Flickity.prototype._makeCells = function( elems ) {
var cellElems = this._filterFindCellElements( elems );
// create new Flickity for collection
- var cells = [];
- for ( var i=0, len = cellElems.length; i < len; i++ ) {
- var elem = cellElems[i];
- var cell = new Cell( elem, this );
- cells.push( cell );
- }
+ var cells = cellElems.map( function( cellElem ) {
+ return new Cell( cellElem, this );
+ }, this );
return cells;
};
@@ -287,10 +283,9 @@ Flickity.prototype._positionCells = function( index ) {
* @param {Array} cells
*/
Flickity.prototype._sizeCells = function( cells ) {
- for ( var i=0, len = cells.length; i < len; i++ ) {
- var cell = cells[i];
+ cells.forEach( function( cell ) {
cell.getSize();
- }
+ });
};
// -------------------------- -------------------------- //
@@ -308,12 +303,11 @@ Flickity.prototype.updateSlides = function() {
var canCellFit = this._getCanCellFit();
- for ( var i=0; i < this.cells.length; i++ ) {
- var cell = this.cells[i];
+ this.cells.forEach( function( cell, i ) {
// just add cell if first cell in slide
if ( !slide.cells.length ) {
slide.addCell( cell );
- continue;
+ return;
}
var slideWidth = ( slide.outerWidth - slide.firstMargin ) +
@@ -329,7 +323,7 @@ Flickity.prototype.updateSlides = function() {
this.slides.push( slide );
slide.addCell( cell );
}
- }
+ }, this );
// last slide
slide.updateTarget();
};
@@ -449,8 +443,7 @@ Flickity.prototype._containSlides = function() {
var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];
var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );
// contain each cell target
- for ( var i=0; i < this.slides.length; i++ ) {
- var slide = this.slides[i];
+ this.slides.forEach( function( slide ) {
if ( isContentSmaller ) {
// all cells fit inside gallery
slide.target = contentWidth * this.cellAlign;
@@ -459,7 +452,7 @@ Flickity.prototype._containSlides = function() {
slide.target = Math.max( slide.target, beginBound );
slide.target = Math.min( slide.target, endBound );
}
- }
+ }, this );
};
// ----- ----- //
@@ -583,7 +576,7 @@ Flickity.prototype.selectCell = function( value ) {
*/
Flickity.prototype.getCell = function( elem ) {
// loop through cells to get the one that matches
- for ( var i=0, len = this.cells.length; i < len; i++ ) {
+ for ( var i=0; i < this.cells.length; i++ ) {
var cell = this.cells[i];
if ( cell.element == elem ) {
return cell;
@@ -599,13 +592,12 @@ Flickity.prototype.getCell = function( elem ) {
Flickity.prototype.getCells = function( elems ) {
elems = utils.makeArray( elems );
var cells = [];
- for ( var i=0, len = elems.length; i < len; i++ ) {
- var elem = elems[i];
+ elems.forEach( function( elem ) {
var cell = this.getCell( elem );
if ( cell ) {
cells.push( cell );
}
- }
+ }, this );
return cells;
};
@@ -614,11 +606,9 @@ Flickity.prototype.getCells = function( elems ) {
* @returns {Array} cellElems
*/
Flickity.prototype.getCellElements = function() {
- var cellElems = [];
- for ( var i=0, len = this.cells.length; i < len; i++ ) {
- cellElems.push( this.cells[i].element );
- }
- return cellElems;
+ return this.cells.map( function( cell ) {
+ return cell.element;
+ });
};
/**
@@ -748,10 +738,9 @@ Flickity.prototype.deactivate = function() {
this.element.classList.remove('flickity-enabled');
this.element.classList.remove('flickity-rtl');
// destroy cells
- for ( var i=0, len = this.cells.length; i < len; i++ ) {
- var cell = this.cells[i];
+ this.cells.forEach( function( cell ) {
cell.destroy();
- }
+ });
this.unselectSelectedSlide();
this.element.removeChild( this.viewport );
// move child elements back into element
diff --git a/js/lazyload.js b/js/lazyload.js
index 5a422f2..bf3c129 100644
--- a/js/lazyload.js
+++ b/js/lazyload.js
@@ -45,16 +45,14 @@ Flickity.prototype.lazyLoad = function() {
var cellElems = this.getAdjacentCellElements( adjCount );
// get lazy images in those cells
var lazyImages = [];
- for ( var i=0, len = cellElems.length; i < len; i++ ) {
- var cellElem = cellElems[i];
+ cellElems.forEach( function( cellElem ) {
var lazyCellImages = getCellLazyImages( cellElem );
lazyImages = lazyImages.concat( lazyCellImages );
- }
+ });
// load lazy images
- for ( i=0, len = lazyImages.length; i < len; i++ ) {
- var img = lazyImages[i];
+ lazyImages.forEach( function( img ) {
new LazyLoader( img, this );
- }
+ }, this );
};
function getCellLazyImages( cellElem ) {
diff --git a/js/page-dots.js b/js/page-dots.js
index 7b0644a..d1122c4 100644
--- a/js/page-dots.js
+++ b/js/page-dots.js
@@ -104,10 +104,9 @@ PageDots.prototype.removeDots = function( count ) {
// remove from this.dots collection
var removeDots = this.dots.splice( this.dots.length - count, count );
// remove from DOM
- for ( var i=0, len = removeDots.length; i < len; i++ ) {
- var dot = removeDots[i];
+ removeDots.forEach( function( dot ) {
this.holder.removeChild( dot );
- }
+ }, this );
};
PageDots.prototype.updateSelected = function() {