Sha256: 67702f1dd5b2f4f8db49334bc2b0c4c851ef6e007d86a269045a2158718d97b9
Contents?: true
Size: 1.28 KB
Versions: 62
Compression:
Stored size: 1.28 KB
Contents
/* */ var ctx = require('./$.ctx'), IObject = require('./$.iobject'), toObject = require('./$.to-object'), toLength = require('./$.to-length'); module.exports = function(TYPE) { var IS_MAP = TYPE == 1, IS_FILTER = TYPE == 2, IS_SOME = TYPE == 3, IS_EVERY = TYPE == 4, IS_FIND_INDEX = TYPE == 6, NO_HOLES = TYPE == 5 || IS_FIND_INDEX; return function($this, callbackfn, that) { var O = toObject($this), self = IObject(O), f = ctx(callbackfn, that, 3), length = toLength(self.length), index = 0, result = IS_MAP ? Array(length) : IS_FILTER ? [] : undefined, 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; else if (res) switch (TYPE) { case 3: return true; case 5: return val; case 6: return index; case 2: result.push(val); } else if (IS_EVERY) return false; } } return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; }; };
Version data entries
62 entries across 31 versions & 1 rubygems