当前位置:首页 > JavaScript

js实现 $.each

2026-04-06 02:11:21JavaScript

js实现 $.each

js实现 $.each

实现 jQuery 的 $.each 方法

在原生 JavaScript 中,可以通过以下方式实现类似 jQuery 的 $.each 方法。该方法用于遍历数组或对象,并对每个元素执行回调函数。

实现代码

function each(collection, callback) {
    if (Array.isArray(collection) || isArrayLike(collection)) {
        for (let i = 0; i < collection.length; i++) {
            callback.call(collection[i], i, collection[i]);
        }
    } else if (typeof collection === 'object') {
        for (let key in collection) {
            if (collection.hasOwnProperty(key)) {
                callback.call(collection[key], key, collection[key]);
            }
        }
    }
}

// 辅助函数:检查是否为类数组对象(如 arguments、NodeList 等)
function isArrayLike(obj) {
    return obj != null && typeof obj === 'object' && 'length' in obj && !isNaN(obj.length);
}

使用方法

// 遍历数组
each([1, 2, 3], function(index, value) {
    console.log(index, value);
});

// 遍历对象
each({ a: 1, b: 2 }, function(key, value) {
    console.log(key, value);
});

功能说明

  • 数组或类数组对象:回调函数的参数为 (index, value),类似于 Array.prototype.forEach
  • 普通对象:回调函数的参数为 (key, value),遍历对象的可枚举属性。
  • 上下文绑定:回调函数中的 this 指向当前遍历的元素(与 jQuery 行为一致)。

注意事项

  • 该方法不会处理稀疏数组(如 [1, , 3])中的空位。
  • 使用 hasOwnProperty 确保只遍历对象自身的属性,而非原型链上的属性。

标签: jseach
分享给朋友:

相关文章

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现定位

js实现定位

使用Geolocation API获取当前位置 在JavaScript中,可以通过浏览器内置的Geolocation API获取用户的地理位置信息。该API需要用户授权才能访问位置数据。 if (n…