Remove baseNth.

This commit is contained in:
John-David Dalton
2017-03-12 23:24:54 -07:00
parent c89637e4db
commit 2f281c68b0
3 changed files with 10 additions and 26 deletions

View File

@@ -1,20 +0,0 @@
import isIndex from './isIndex.js'
/**
* The base implementation of `nth` which doesn't coerce arguments.
*
* @private
* @param {Array} array The array to query.
* @param {number} n The index of the element to return.
* @returns {*} Returns the nth element of `array`.
*/
function baseNth(array, n) {
const { length } = array
if (!length) {
return
}
n += n < 0 ? length : 0
return isIndex(n, length) ? array[n] : undefined
}
export default baseNth

10
nth.js
View File

@@ -1,4 +1,4 @@
import baseNth from './.internal/baseNth.js' import isIndex from './.internal/isIndex.js'
import toInteger from './toInteger.js' import toInteger from './toInteger.js'
/** /**
@@ -21,7 +21,13 @@ import toInteger from './toInteger.js'
* // => 'c' * // => 'c'
*/ */
function nth(array, n) { function nth(array, n) {
return (array != null && array.length) ? baseNth(array, toInteger(n)) : undefined const length = array == null ? 0 : array.length
if (!length) {
return
}
n = toInteger(n)
n += n < 0 ? length : 0
return isIndex(n, length) ? array[n] : undefined
} }
export default nth export default nth

View File

@@ -1,5 +1,4 @@
import baseNth from './.internal/baseNth.js' import nth from './nth.js'
import toInteger from './toInteger.js'
/** /**
* Creates a function that gets the argument at index `n`. If `n` is negative, * Creates a function that gets the argument at index `n`. If `n` is negative,
@@ -20,8 +19,7 @@ import toInteger from './toInteger.js'
* // => 'c' * // => 'c'
*/ */
function nthArg(n) { function nthArg(n) {
n = toInteger(n) return (...args) => nth(args, n)
return (...args) => baseNth(args, n)
} }
export default nthArg export default nthArg