diff options
author | David DeSandro <desandrocodes@gmail.com> | 2016-06-15 13:45:54 -0400 |
---|---|---|
committer | David DeSandro <desandrocodes@gmail.com> | 2016-06-15 15:12:01 -0400 |
commit | 31e7aab701c5db41cf88e2f6e14b64fa22e5c854 (patch) | |
tree | 40b69b278ad14cea7057b6953ea3ae505bb30c75 | |
parent | 65a548a1af22f8a38fb15279162faa313a2d6757 (diff) | |
download | flickity-31e7aab701c5db41cf88e2f6e14b64fa22e5c854.zip flickity-31e7aab701c5db41cf88e2f6e14b64fa22e5c854.tar.gz flickity-31e7aab701c5db41cf88e2f6e14b64fa22e5c854.tar.bz2 |
🛠refactor for loops, use forEach, map
-rw-r--r-- | js/add-remove-cell.js | 12 | ||||
-rw-r--r-- | js/animate.js | 4 | ||||
-rw-r--r-- | js/flickity.js | 51 | ||||
-rw-r--r-- | js/lazyload.js | 10 | ||||
-rw-r--r-- | js/page-dots.js | 5 |
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() { |