当前位置:首页 > JavaScript

js循环实现

2026-03-14 07:32:36JavaScript

循环基础语法

JavaScript 提供了多种循环结构来处理重复任务,以下是常见的循环类型:

for 循环:

for (let i = 0; i < 5; i++) {
  console.log(i); // 输出0到4
}

while 循环:

let i = 0;
while (i < 5) {
  console.log(i); // 输出0到4
  i++;
}

do...while 循环:

let i = 0;
do {
  console.log(i); // 至少执行一次
  i++;
} while (i < 5);

数组遍历方法

forEach 方法:

const arr = [1, 2, 3];
arr.forEach(item => {
  console.log(item); // 依次输出1,2,3
});

for...of 循环:

const arr = [1, 2, 3];
for (const item of arr) {
  console.log(item); // 依次输出1,2,3
}

对象遍历方法

for...in 循环:

js循环实现

const obj = {a: 1, b: 2};
for (const key in obj) {
  console.log(key, obj[key]); // 输出a 1和b 2
}

Object.keys() 配合 forEach

const obj = {a: 1, b: 2};
Object.keys(obj).forEach(key => {
  console.log(key, obj[key]); // 输出a 1和b 2
});

循环控制语句

break 语句:

for (let i = 0; i < 5; i++) {
  if (i === 3) break;
  console.log(i); // 输出0,1,2
}

continue 语句:

for (let i = 0; i < 5; i++) {
  if (i === 3) continue;
  console.log(i); // 输出0,1,2,4
}

高阶函数式循环

map 方法:

js循环实现

const arr = [1, 2, 3];
const doubled = arr.map(x => x * 2); // 返回[2,4,6]

filter 方法:

const arr = [1, 2, 3, 4];
const evens = arr.filter(x => x % 2 === 0); // 返回[2,4]

性能优化技巧

缓存数组长度:

const arr = [1, 2, 3];
for (let i = 0, len = arr.length; i < len; i++) {
  console.log(arr[i]);
}

减少DOM操作:

const elements = document.querySelectorAll('.item');
const results = [];
for (let i = 0; i < elements.length; i++) {
  results.push(elements[i].textContent);
}

异步循环处理

for...await...of

async function process(array) {
  for await (const item of array) {
    console.log(item);
  }
}

Promise.all 配合 map:

const urls = ['url1', 'url2'];
const results = await Promise.all(urls.map(async url => {
  const response = await fetch(url);
  return response.json();
}));

标签: js
分享给朋友:

相关文章

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…

js树实现

js树实现

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

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…