time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

_basePullAt.js (939B)


      1 var baseUnset = require('./_baseUnset'),
      2     isIndex = require('./_isIndex');
      3 
      4 /** Used for built-in method references. */
      5 var arrayProto = Array.prototype;
      6 
      7 /** Built-in value references. */
      8 var splice = arrayProto.splice;
      9 
     10 /**
     11  * The base implementation of `_.pullAt` without support for individual
     12  * indexes or capturing the removed elements.
     13  *
     14  * @private
     15  * @param {Array} array The array to modify.
     16  * @param {number[]} indexes The indexes of elements to remove.
     17  * @returns {Array} Returns `array`.
     18  */
     19 function basePullAt(array, indexes) {
     20   var length = array ? indexes.length : 0,
     21       lastIndex = length - 1;
     22 
     23   while (length--) {
     24     var index = indexes[length];
     25     if (length == lastIndex || index !== previous) {
     26       var previous = index;
     27       if (isIndex(index)) {
     28         splice.call(array, index, 1);
     29       } else {
     30         baseUnset(array, index);
     31       }
     32     }
     33   }
     34   return array;
     35 }
     36 
     37 module.exports = basePullAt;