# nth
# Description
获取 array 数组的第 n 个元素。如果 n 为负数,则返回从数组结尾开始的第 n 个元素。
# Params
(array, n)
# Return
{*}
# Depend
import isIndex from './.internal/isIndex.js'
# Code
function nth(array, n) {
const length = array == null ? 0 : array.length
if (!length) {
return
}
n += n < 0 ? length : 0
return isIndex(n, length) ? array[n] : undefined
}
# Analyze
对于参数的合法性做了校验及处理,如果
length
为假值,则直接返回undefined
针对
n
为负数做了处理,如果 为负数,则n = n + length
,也就是从右向左最后判断了
n
是不是一个 合法的索引,如果是 则返回array[n]
,否则返回undefined
# Example
console.log(nth([], 4)) // undefined
console.log(nth([1,2,3,4,5], 4)) // 5
console.log(nth([1,2,3,4,5], -4)) // 2