当前位置:首页 > JavaScript

js实现 $.each

2026-02-01 09:30:16JavaScript

$.each 的实现方法

在 JavaScript 中实现类似 jQuery 的 $.each 方法,可以通过以下方式完成。$.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 方法中返回传入的集合:

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,遍历会提前终止。这在某些场景下非常有用,比如在查找特定元素时。

js实现 $.each

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

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

标签: jseach
分享给朋友:

相关文章

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…