Open FrankKai opened 4 years ago
const filter = (arr, callback) => {
const result = [];
for (let i = 0; i < arr.length; i++) {
const validate = callback(arr[i], i, arr);
if (validate) {
result.push(arr[i]);
}
}
return result;
};
const arr = [1, 2, 3, 4];
/**
* 1.测试callback入参
*/
filter(arr, (item, index, arr) => console.log(item, index, arr));
/**
* 2.测试callback断言
*/
let filterArr = filter(arr, (item) => item > 1);
console.log(filterArr);
const map = (arr, callback) => {
const result = [];
for (let i = 0; i < arr.length; i++) {
result.push(callback(arr[i], i, arr));
}
return result;
};
const arr = [1, 2, 3, 4];
/**
* 1.测试callback入参
*/
map(arr, (item, index, arr) => console.log(item, index, arr));
/**
* 2.测试callback映射
*/
let mapArr = map(arr, (item, index) => ({ value: item, index }));
console.log(mapArr);
const every = (arr, callback) => {
let result = true;
for (let i = 0; i < arr.length; i++) {
if (!callback(arr[i], i, arr)) {
result = false;
break;
}
}
return result;
};
const arr = [1, 2, 3, 4];
/**
主要手写一些常用的Array.prototype上的函数。