普通for循环

优点:自行指定循环次数。

for (let i = 0; i < 10; i++) {console.log(i);
}

forEach

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。

注意: forEach() 对于空数组是不会执行回调函数的。

forEach()的回调函数有两个参数,index,value,index为当前元素的索引值,value为当前元素。

var arr = ["你好","我好","大家好","才是","真的好"];
arr.forEach(function(value,index) {// 输出为array数组的每一个元素// 注意 value在前console.log(value);
});

arr必须是一个真正的数组,当arr为伪数组则会报错

let btns = document.getElementsByTagName("button")
console.log("btns",btns);//得到一个伪数组
btns.forEach(item=>console.log(item)) Uncaught TypeError: btns.forEach is not a function

缺点:

1.不能同时遍历多个集合,在遍历的时候无法修改和删除集合数据,

2.方法不能使用break,continue语句跳出循环,或者使用return从函数体返回,对于空数组不会执行回调函数

each()

方法分两种情况,$().each() 和 $.each()。

$().each()是对页面元素的操作,此时可获取DOM元素直接操作

var resourceInputVal = $("#ResouraceModal form input");
$("#ResouraceModal .btn-default").click(function () {// button按钮的点击事件里可以直接修改input输入框的内容resourceInputVal.each(function (index, value) {// 注意index在前value.value = "";})})

如果要用each方法操作二维数组,可以这样写:

var arr = ["gag","grt","rthr","afds","nttr","fWGW","afgd","cvd","awx"];
$.each(arr,function(index,value) {// 此时,each方法可以用于直接操作数组// index在前console.log(value);
});

for..in

  1. 为循环“enumerable”对象设计的
  2. 循环遍历对象自身和继承的可枚举属性(不含Symbol)
  3. 会循环原型链和手动添加的键,返回键名key
  4. 某些情况下,循环顺序随机

for in的优点:可以遍历数组的键名,遍历对象简洁方便

for in的缺点:

  1. 索引是字符串型的数字,因而不能直接进行几何运算
  2. 遍历顺序可能不是实际的内部顺序
  3. for in会遍历数组所有的可枚举属性,包括原型。例如的原型方法method和name属性
  4. 如果手动向数组添加成员属性,则:虽然数组的length不变,但用for..in遍历数组会遍历到那些新定义的属性。

故而一般用for in遍历对象而不用来遍历数组

这也就是for of存在的意义了,for of 不遍历method和name,适合用来遍历数组

for...of(ES6)

  1. 可以使用break,continue,return
  2. 支持数组类数组对象的遍历,循环读取键值
  3. 也支持字符串的遍历
  4. for..of循环修复了for..in存在的问题,他只遍历属于对象本身的属性值。
    且这个对象必须是iterable可被迭代的。如Array, Map, Set

for of的优点避免了for in的所有缺点,可以使用break,continue和return,不仅支持数组的遍历,还可以遍历类似数组的对象,支持字符串的遍历。是最简洁,最直接的遍历数组的语法。还支持map和Set对象遍历

for of的缺点:不支持普通对象,想遍历对象的属性,可以用for in循环, 或内建的Object.keys()方法:

Object.keys(myObject)获取对象的实例属性组成的数组,不包括原型方法和属性

for (var key of Object.keys(Object))console.log(key + ": " + Object[key]);

for in和for of最直接的区别就是:

for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。

Array.prototype.method=function(){}
var myArray=[1,2,4];
myArray.name="数组";for (var index in myArray)console.log(myArray[index]);    //0,1,2,method,namefor (var value of myArray) console.log(value);    //1,2,4
  1. for...in 语句以原始插入顺序迭代对象的可枚举属性。
  2. for...of 语句遍历可迭代对象定义要迭代的数据。

关于几种循环的性能:https://blog.csdn.net/weixin_42441117/article/details/80688567?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2

jQuery 与for相关的遍历方法相关推荐

  1. jQuery 遍历方法总结

    遍历方法有:1.add(),用于把元素添加到匹配元素的集合中:2.children(),用于返回被选元素的所有直接子元素:3.closest(),用于返回被选元素的第一个祖先元素:4.contents ...

  2. jQuery 遍历方法

    jQuery 遍历方法 方法 描述 add() 把元素添加到匹配元素的集合中 addBack() 把之前的元素集添加到当前集合中 andSelf() 在版本 1.8 中被废弃.addBack() 的别 ...

  3. jQuery 遍历 方法

    jQuery 遍历 方法 jQuery 遍历方法 方法 描述 add() 把元素添加到匹配元素的集合中 addBack() 把之前的元素集添加到当前集合中 andSelf() 在版本 1.8 中被废弃 ...

  4. jQuery 循环遍历方法总结+综合案例

    jQuery目前是前端比较流行的JavaScript框架,循环遍历的场景工作中经常遇到,今天就对jQuery中的循环遍历做个总结.文章最后附综合案例代码. 第一:for.while.do while循 ...

  5. matlab 遍历每个像素点,Mat中两种像素遍历方法比较

    小白,入门中,不足其指正.刚刚接触opencv,从一个Matlab风格的编程环境突然跳转到C++,实在有些不适.单就pixels scanning花了好长时间研究.opencv-tutorials给出 ...

  6. python列表方法语句_Python中列表和元组的相关语句和方法讲解

    列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...

  7. jquery 对 Json 的各种遍历

    原文链接: http://caibaojian.com/jquery-each-json.html 概述 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, ...

  8. js进阶课程 12-9 jquery的事件对象event的方法有哪些?

    js进阶课程 12-9 jquery的事件对象event的方法有哪些? 一.总结 一句话总结:三组六个,阻止默认事件一组,阻止冒泡一组,阻止冒泡和剩余事件一组. 1.事件的默认动作指什么? 比如点a标 ...

  9. js进阶 13-6 jquery动画效果相关常用函数有哪些

    js进阶 13-6 jquery动画效果相关常用函数有哪些 一.总结 一句话总结:animate(),stop(),finish(),delat()四个. 1.stop()方法的基本用法是什么(sto ...

最新文章

  1. 盘点一下数据库的误操作有哪些后悔药?
  2. 19.7 主动模式和被动模式 添加监控主机 添加自定义模板 处理图形
  3. 为什么德国人工作这么慢,但效率却很高?
  4. ITK:平移一个网格
  5. mysql 数学函数
  6. java有什么压力_编程语言的心智负担!你学编程得有多大的压力快来测试一下...
  7. 2017计算机考试题上机,2017年计算机二级上机考试试题及答案
  8. layui使用弹出层 关闭后弹层的内容又显示出来
  9. Nginx学习之十一-Nginx启动框架处理流程
  10. Python数据分析学习笔记01:安装相关软件、导入扩展模块与集成开发环境
  11. 我的学习之路_第十四章_反射
  12. python3内置函数_python3--内置函数
  13. Python之np.where的使用
  14. MPLS VXN配置实例——RT值的妙用
  15. PHP连接 SQLSERVER 注意事项(经典中的经典)
  16. wps带阴影的边框怎么设置_wps如何添加阴影边框-wps设置阴影边框的方法 - 河东软件园...
  17. solr删除数据的4种方便快捷的方式
  18. (适合小白)利用百度AI开放平台实现人脸检测,对比和搜索。
  19. petalinux2018.3安装步骤
  20. 修改计算机ip地址cmd,win7系统通过命令提示符将系统修改为静态IP地址的方法【图文】...

热门文章

  1. Oracle安装手册
  2. x86汇编_指令集大全_笔记_6
  3. 关于Coursera
  4. 算术移位和逻辑移位详解
  5. linkbutton 的启用和禁用
  6. 实验室:通过混淆文件扩展名上传 Web shell
  7. 怎么看外文文献的影响因子_sci 上的论文影响因子怎么看
  8. Netty手动实现Dubbo(含视频教程)
  9. 正则环视 php,PHP正则之环视功能
  10. win10电脑的时间怎样设置