自己实现数组的 `map`、`filter`、`find` 方法
在JavaScript中,map
、filter
和find
是数组的常用方法,它们各自有特定的用途。下面是如何自己实现这些方法:
map
方法
map
方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
function map(array, callback) {
let newArray = [];
for (let i = 0; i < array.length; i++) {
newArray.push(callback(array[i], i, array));
}
return newArray;
}
使用示例:
let numbers = [1, 2, 3, 4, 5];
let squared = map(numbers, function(num) {
return num * num;
});
console.log(squared); // [1, 4, 9, 16, 25]
filter
方法
filter
方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
function filter(array, callback) {
let newArray = [];
for (let i = 0; i < array.length; i++) {
if (callback(array[i], i, array)) {
newArray.push(array[i]);
}
}
return newArray;
}
使用示例:
let numbers = [1, 2, 3, 4, 5, 6];
let evenNumbers = filter(numbers, function(num) {
return num % 2 === 0;
});
console.log(evenNumbers); // [2, 4, 6]
find
方法
find
方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
。
function find(array, callback) {
for (let i = 0; i < array.length; i++) {
if (callback(array[i], i, array)) {
return array[i];
}
}
return undefined;
}
使用示例:
let users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
let user = find(users, function(user) {
return user.id === 2;
});
console.log(user); // { id: 2, name: 'Bob' }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】