/** * 1、map函数 * @param {Array} arr * @param {Function} callback * @returns */ function map(arr,callback){ let result = [] for(let i = 0;i < arr.length;i++){ result.push(callback(arr[i],i)) } return result; } /** * 2、reduce函数 * @param {Array} arr * @param {Function} callback * @param {*} initValue * @returns */ function reduce(arr,callback,initValue){ let result = initValue for(let i = 0;i < arr.length;i++){ result = callback(result,arr[i]) } return result } /** * 3、filter函数 * @param {Array} arr * @param {Function} callback * @returns */ function filter(arr,callback){ let result = [] for(let i = 0;i < arr.length;i++){ if(callback(arr[i],i)){ result.push(arr[i]) } } return result } /** * 4、find函数 * 找到数组中第一个满足条件的值 * @param {*} arr * @param {*} callback * @returns */ function find(arr,callback){ for(let i = 0;i < arr.length;i++){ if(callback(arr[i],i)){ return arr[i] } } return undefined } /** * 5、findIndex函数 * 找到数组中第一个满足条件的下标 * @param {*} arr * @param {*} callback * @returns */ function findIndex(arr,callback){ for(let i = 0;i < arr.length;i++){ if(callback(arr[i],i)){ return i } } return -1 } /** * 6、every函数 * 必须所有都满足 * @param {*} arr * @param {*} callback * @returns bool */ function every(arr,callback){ for(let i = 0;i < arr.length;i++){ if(!callback(arr[i],i)){ return false } } return true } /** * 7、some函数 * 只要有一个满足 * @param {*} arr * @param {*} callback * @returns bool */ function some(arr,callback){ for(let i = 0;i < arr.length;i++){ if(callback(arr[i],i)){ return true } } return false }