当前位置:首页 > JavaScript

js实现 $.each

2026-02-01 09:30:16JavaScript

$.each 的实现方法

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

js实现 $.each

实现数组和对象的遍历

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

function isArrayLike(obj) {
  return typeof obj === 'object' && obj.length !== undefined;
}

使用示例

const arr = [1, 2, 3];
each(arr, function(index, value) {
  console.log(`Index: ${index}, Value: ${value}`);
});

const obj = { a: 1, b: 2 };
each(obj, function(key, value) {
  console.log(`Key: ${key}, Value: ${value}`);
});

实现链式调用

如果需要支持链式调用,可以在 each 方法中返回传入的集合:

js实现 $.each

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

支持 this 绑定

$.each 允许在回调函数中使用 this 指向当前元素。上述实现已经通过 callback.call 确保了这一点。

提前终止遍历

如果回调函数返回 false,遍历会提前终止。这在某些场景下非常有用,比如在查找特定元素时。

each([1, 2, 3], function(index, value) {
  console.log(value);
  if (value === 2) {
    return false; // 终止遍历
  }
});

通过以上方法,可以实现一个功能接近 jQuery $.each 的遍历工具函数。

标签: jseach
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…