js与jquery中的遍历语句
- js
- 1、for循环(效率最高)
- 2、for…of循环(效率较高)
- 3、for…in循环(效率较低)
- 4、forEach函数(数组内置高阶函数, 定义清晰)
- 5、map函数(数组内置高阶函数, 定义清晰)
- jquery
js
1、for循环(效率最高)
- 优点:JavaScript最普遍的for循环,执行效率最高
- 缺点:无法遍历对象
- 描述:常用于遍历数组
for(let i = 0; i < arr.length; i++){//goto}
2、for…of循环(效率较高)
- 优点:能够快速访问非继承属性值
- 缺点:需要ES6支持
- 描述:(ES6新增方法)循环遍历对象的value,即键值对里的值,与for in遍历key相反。
for-of循环不仅仅是为遍历数组而设计的。基本上所有类数组对象都适用,比如DOM NodeListS。
相比forEach(),它支持break,continue和return。总之,他设计的初衷就是成为一个优秀的遍历方法,已解决现有遍历的问题。
for(item of object){//goto}
3、for…in循环(效率较低)
- 优点:唯一一个能够获取对象的属性名的遍历方式
- 缺点:会将对象通过继承得到的属性一齐遍历,造成非预料的结果且效率较低
- 描述:循环遍历对象的key,即键值对里的键。常用于遍历对象(一般不推荐遍历数组 [把数组索引当成key去遍历],该遍历不能保证顺序,而且 原型链 上的属性也会被遍历到,因此一般常用来遍历 非数组的对象 并且使用 hasOwnProperty() 方法去过滤掉原型链上的属性)。
for(item in object){//判断是否有继承属性if(item.hasOwnProperty(item)){//item[value]}}
4、forEach函数(数组内置高阶函数, 定义清晰)
- 优点:函数式编程,简洁,快速领会代码含义
- 缺点:无法对对象使用
- 描述:ES5新增方法)用于遍历数组,遍历过程不能被终止(不能使用continue, break,但是可以使用return或者if中止
array.foreach(function(item, index, arr){//item 值//index 索引//arr 被访问数组})
5、map函数(数组内置高阶函数, 定义清晰)
- 优点:函数式编程,简洁,快速领会代码含义
- 缺点:无法对对象使用
- 描述:ES5新增方法,Array.prototype.map,注意与ES6的Map键值对结构的对象的区别)这里的map指“映射”,也就是原数组被“映射”成对应新数组,返回值是一个新数组。基本用法跟forEach方法类似
arr.map(function(value,index,arr){//goto}
jquery
$中each()函数的两种方式
$.each(arr, function (index, item) { //goto });$(arr).each(function (index, item) { //goto });