# map
# Description
创建一个数组, value(值) 是 iteratee(迭代函数)遍历 collection(集合)中的每个元素后返回的结果。 iteratee(迭代函数)调用 3 个参数: (value, index|key, collection).
# Params
(array, iteratee)
iteratee 每次迭代调用的函数
# Return
Array
# Code
function map(array, iteratee) {
let index = -1
const length = array == null ? 0 : array.length
const result = new Array(length)
while (++index < length) {
result[index] = iteratee(array[index], index, array)
}
return result
}
# Analyze
首先拿到
array
的长度length
,如果不存在则length
取 0新建一个和
array
等长的数组result
,作为返回值while
循环遍历, 每一次遍历都拿到iteratee
处理之后的结果,赋值给result
对应的下标iteratee
参数第一项为 当前遍历的值,第二项为下标,第三项为 原数组最终返回
result
# Remark
# Example
function square(n) {
return n * n
}
map([4, 8], square) // => [16, 64]