Sha256: aa97964c82f50b14b80a562f1f37342f93da8cb56417b9596f170ea52d1c6aa2

Contents?: true

Size: 1.46 KB

Versions: 82

Compression:

Stored size: 1.46 KB

Contents

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = require('./_ctx');
var IObject = require('./_iobject');
var toObject = require('./_to-object');
var toLength = require('./_to-length');
var asc = require('./_array-species-create');
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};

Version data entries

82 entries across 38 versions & 8 rubygems

Version Path
immosquare-cleaner-0.1.60 node_modules/core-js/library/modules/_array-methods.js
immosquare-cleaner-0.1.60 node_modules/core-js/modules/_array-methods.js
immosquare-cleaner-0.1.59 node_modules/core-js/library/modules/_array-methods.js
immosquare-cleaner-0.1.59 node_modules/core-js/modules/_array-methods.js
immosquare-cleaner-0.1.58 node_modules/core-js/library/modules/_array-methods.js
immosquare-cleaner-0.1.58 node_modules/core-js/modules/_array-methods.js
immosquare-cleaner-0.1.57 node_modules/core-js/modules/_array-methods.js
immosquare-cleaner-0.1.57 node_modules/core-js/library/modules/_array-methods.js
immosquare-cleaner-0.1.56 node_modules/core-js/library/modules/_array-methods.js
immosquare-cleaner-0.1.56 node_modules/core-js/modules/_array-methods.js
immosquare-cleaner-0.1.55 node_modules/core-js/library/modules/_array-methods.js
immosquare-cleaner-0.1.55 node_modules/core-js/modules/_array-methods.js
immosquare-cleaner-0.1.54 node_modules/core-js/library/modules/_array-methods.js
immosquare-cleaner-0.1.54 node_modules/core-js/modules/_array-methods.js
immosquare-cleaner-0.1.53 node_modules/core-js/modules/_array-methods.js
immosquare-cleaner-0.1.53 node_modules/core-js/library/modules/_array-methods.js
immosquare-cleaner-0.1.52 node_modules/core-js/library/modules/_array-methods.js
immosquare-cleaner-0.1.52 node_modules/core-js/modules/_array-methods.js
immosquare-cleaner-0.1.51 node_modules/core-js/library/modules/_array-methods.js
immosquare-cleaner-0.1.51 node_modules/core-js/modules/_array-methods.js