Permalink
Browse files

Remove `baseTimes`.

  • Loading branch information...
jdalton committed Mar 8, 2017
1 parent 41a8d22 commit 9260bd2f57d619d3d3b56f1ecd1bc82766727b3e
Showing with 19 additions and 33 deletions.
  1. +6 −4 .internal/arrayLikeKeys.js
  2. +0 −19 .internal/baseTimes.js
  3. +7 −8 times.js
  4. +6 −2 unzip.js
View
@@ -1,4 +1,3 @@
-import baseTimes from './baseTimes.js'
import isArguments from '../isArguments.js'
import isBuffer from '../isBuffer.js'
import isIndex from './isIndex.js'
@@ -21,9 +20,12 @@ function arrayLikeKeys(value, inherited) {
const isBuff = !isArr && !isArg && isBuffer(value)
const isType = !isArr && !isArg && !isBuff && isTypedArray(value)
const skipIndexes = isArr || isArg || isBuff || isType
- const result = skipIndexes ? baseTimes(value.length, String) : []
- const length = result.length
-
+ const length = value.length
+ const result = new Array(skipIndexes ? length : 0)
+ let index = skipIndexes ? -1 : length
+ while (++index < length) {
+ result[index] = `${ index }`
+ }
for (const key in value) {
if ((inherited || hasOwnProperty.call(value, key)) &&
!(skipIndexes && (
View
@@ -1,19 +0,0 @@
-/**
- * The base implementation of `times` without support for max array length checks.
- *
- * @private
- * @param {number} n The number of times to invoke `iteratee`.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the array of results.
- */
-function baseTimes(n, iteratee) {
- let index = -1
- const result = Array(n)
-
- while (++index < n) {
- result[index] = iteratee(index)
- }
- return result
-}
-
-export default baseTimes
View
@@ -1,4 +1,3 @@
-import baseTimes from './.internal/baseTimes.js'
import toInteger from './toInteger.js'
/** Used as references for various `Number` constants. */
@@ -7,9 +6,6 @@ const MAX_SAFE_INTEGER = 9007199254740991
/** Used as references for the maximum length and index of an array. */
const MAX_ARRAY_LENGTH = 4294967295
-/* Built-in method references for those with the same name as other `lodash` methods. */
-const nativeMin = Math.min
-
/**
* Invokes the iteratee `n` times, returning an array of the results of
* each invocation. The iteratee is invoked with one argumentindex).
@@ -32,10 +28,13 @@ function times(n, iteratee) {
if (n < 1 || n > MAX_SAFE_INTEGER) {
return []
}
- let index = MAX_ARRAY_LENGTH
- const length = nativeMin(n, MAX_ARRAY_LENGTH)
- const result = baseTimes(length, iteratee)
-
+ let index = -1
+ const length = Math.min(n, MAX_ARRAY_LENGTH)
+ const result = Array(length)
+ while (++index < length) {
+ result[index] = iteratee(index)
+ }
+ index = MAX_ARRAY_LENGTH
n -= MAX_ARRAY_LENGTH
while (++index < n) {
iteratee(index)
View
@@ -1,7 +1,6 @@
import arrayFilter from './.internal/arrayFilter.js'
import arrayMap from './.internal/arrayMap.js'
import baseProperty from './.internal/baseProperty.js'
-import baseTimes from './.internal/baseTimes.js'
import isArrayLikeObject from './isArrayLikeObject.js'
/* Built-in method references for those with the same name as other `lodash` methods. */
@@ -36,7 +35,12 @@ function unzip(array) {
return true
}
})
- return baseTimes(length, (index) => arrayMap(array, baseProperty(index)))
+ let index = -1
+ const result = new Array(length)
+ while (++index < length) {
+ result[index] = arrayMap(array, baseProperty(index))
+ }
+ return result
}
export default unzip

0 comments on commit 9260bd2

Please sign in to comment.