Show More
Commit Description:
fix wrong merge
Commit Description:
fix wrong merge
References:
File last commit:
Show/Diff file:
Action:
node_modules/core-js/modules/_array-methods.js
| 44 lines
| 1.5 KiB
| application/javascript
| JavascriptLexer
|
r789 | // 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; | ||||
}; | ||||
}; | ||||