自己实现数组的 `map`、`filter`、`find` 方法

在JavaScript中,mapfilterfind是数组的常用方法,它们各自有特定的用途。下面是如何自己实现这些方法:

  1. 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]
  1. 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]
  1. 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' }
posted @   王铁柱6  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示