手写ES6中的map

768 阅读1分钟

手写能加深对map的理解,有时候懂了却不一定写得出,希望大家多多动手,没事别打那么多嘴炮!要做行动的巨人!

map可以传进一个回调函数,返回一个值。map运用

var arr = [1, 2, 3, 4]
        var array = arr.map((item, index) => {
            return item * 2
        })
        console.log(array);

手写

var arr = [1, 2, 3, 4];
function map(arr, mapCallback) {
            // 1:检查参数是否正确
if (!Array.isArray(arr) || !arr.length || typeof mapCallback !== 'function') {
                return []
            } else {
                // 进行下列操作
let result = []
for (let i = 0, len = arr.length; i <= len; i++) {
         result.push(mapCallback(arr[i], i, arr))
                }
                return result
            }
        }

        var sb = map(arr, (item) => {
            return item * 2
        })
        console.log(sb);