面试题之手撕ES6

420 阅读1分钟

1. 实现forEach

1. 接收一个数组和函数
2. 将每项与下标传入函数
const forEach = (array, fn) => {
	const length = array.length || 0
	for(let i = 0; i < length; i++) {
		fn(array[i], i)
	}
}

2. 实现map

	1.接收一个数组,和一个回调函数
    2. 返回处理后的数组
	const map = (arr, fn) => {
    	let result = []
    	const length = arr.length
    	for(let i = 0; i < length; i ++) {
        	result.push( fn(arr[i], i) ) // 将当前项和下标返回出去
        }
        return result
    }

3. find


	const find = (array, fn) => {
    	const length = array.length || 0
		let result
        for(let i = 0; i < length; i++) {
        	if ( fn(array[i],i) ) { // 满足回调函数条件
         	   result = array[i]
            }
        }
        return result
	}