for…of的使用

for…of的作用

for...of 一种用于遍历数据结构的方法。它可遍历的对象包括数组,字符串,set和map结构等具有iterator 接口的数据结构。

for...of的实现

var arr =[1,2,3,4,5];
for(let value of arr){
   consoLe.log(value);
}
//打印结果:依次输出:1 2 3 4 5

for...of的优点:

1.写法比for循环简洁很多;

2.可以用break来终止整个循环,或者continute来跳出当前循环,继续后面的循环;

3.结合keys( )获取到循环的索引,并且是数字类型,而不是字符串类型。

4.支持遍历数组,字符串,Set和Map结构

循环终止的实现方式

1.break终止整个循环

var arr =[1,2,3,4,5];
for(let value of arr){
  if(value == 3){
    break;//终止整个循环
  }
  console.log(value);
}
//打印结果:1 2

2.continue跳过当前循环

var arr =[1,2,3,4,5];
for(let value of arr){
  if(value == 3){
    continue;//跳过当前循环,继续后面的循环
  }
  console.log(value);
}
//打印结果:1  2  4  5

得到数字类型索引

使用数组的扩展keys( ),获取键名再遍历,得到的index是数字类型的。

var arr =[1,2,3,4,5];
for(let index of arr.keys()){
  console.log(index);
}
//打印结果:依次输出:0 1 2 3 4

for...in与for...of的区别

for...in循环专门为对象设计,for...of循环的适用范围更广。

# 题目重述 使用 `for...of` 循环语法,在 JavaScript 中实现“全选”、“取消”、“反选”和“提交”功能,操作目标为一组复选框(如爱好:乒乓球、篮球、羽毛球、足球)。 # 代码概述 本代码使用现代 JavaScript 的 `for...of` 循环替代 `forEach`,遍历所有复选框元素,实现全选、取消、反选与提交功能。结构清晰,兼容性好。 # 代码解析 ```html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>全选反选(for...of 版)</title> </head> <body> <form id="hobbyForm"> <input type="checkbox" name="hobby" value="乒乓球"> 乒乓球<br> <input type="checkbox" name="hobby" value="篮球"> 篮球<br> <input type="checkbox" name="hobby" value="羽毛球"> 羽毛球<br> <input type="checkbox" name="hobby" value="足球"> 足球<br> </form> <button onclick="selectAll()">全选</button> <button onclick="deselectAll()">取消</button> <button onclick="toggleSelect()">反选</button> <button onclick="submitForm()">提交</button> <script> // 获取所有 name="hobby" 的复选框 const checkboxes = document.querySelectorAll('input[name="hobby"]'); // 全选:使用 for...of 遍历并设为选中 function selectAll() { for (const cb of checkboxes) { cb.checked = true; } } // 取消:使用 for...of 遍历并取消选中 function deselectAll() { for (const cb of checkboxes) { cb.checked = false; } } // 反选:使用 for...of 遍历并翻转当前状态 function toggleSelect() { for (const cb of checkboxes) { cb.checked = !cb.checked; } } // 提交:收集已选中的值并显示 function submitForm() { const selected = []; for (const cb of checkboxes) { if (cb.checked) { selected.push(cb.value); } } alert("您选择的爱好是:" + selected.join("、")); } </script> </body> </html> ``` ### 关键说明: - `document.querySelectorAll` 返回一个类数组对象,**支持 `for...of` 遍历**。 - `for...of` 直接获取每个 DOM 元素,比传统 `for` 更简洁。 - 在 `submitForm` 中同样使用 `for...of` 来判断是否选中,避免使用 `filter` 或 `forEach`。 # 知识点(列出该代码中遇到的知识点) - **for...of 循环**:可遍历类数组或可迭代对象,直接访问元素值,适用于 NodeList。 - **DOM 查询方法**:`querySelectorAll` 返回节点列表,可用于动态操作表单元素。 - **事件绑定与函数执行**:通过 `onclick` 调用函数,实现用户交互响应逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值