JavaScript数组遍历的6种方法比较_第1页
JavaScript数组遍历的6种方法比较_第2页
JavaScript数组遍历的6种方法比较_第3页
JavaScript数组遍历的6种方法比较_第4页
JavaScript数组遍历的6种方法比较_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第JavaScript数组遍历的6种方法比较一、for

JavaScript中的for循环,它用来遍历数组

vararr=[1,2,3,4]

for(vari=0;iarr.length;i++){

console.log(arr[i])

//1,2,3,4

九九乘法表:

for(varx=1;xx++){

varstr=

for(vary=1;yy++){

str+=x+*+y+=+(x*y)+

console.log(str);

}

二、foreach

forEach循环我们可以直接取到元素,同时也可以取到index值。但是forEach也有一些局限,不能continue跳过或者break终止循环

letarr=[a,b,c,d]

arr.forEach(function(val,index,arr){

console.log(index:+index+,+val:+val)//val是当前元素,index当前元素索引,arr数组

console.log(arr)

//index:0,val:a

//[a,b,c,d]0:a1:b2:c3:d

//index:1,val:b

//[a,b,c,d]

//index:2,val:c

//[a,b,c,d]

//index:3,val:d

//[a,b,c,d]

[].forEach(function(value,index,array){

//dosomething

});

等价于:

$.each([],function(index,value,array){

//dosomething

})

三、forin

for(variteminarr|obj){}可以用于遍历数组和对象

遍历数组时,item表示索引值,arr表示当前索引值对应的元素arr[item]

遍历对象时,item表示key值,arr表示key值对应的value值obj[item]

forin一般循环遍历的都是对象的属性,遍历对象本身的所有可枚举属性,以及对象从其构造函数原型中继承的属性

varobj={a:1,b:2,c:3};

for(letiteminobj){

console.log(obj.+item+=+obj[item]);

//obj.a=1

//obj.b=2

//obj.c=3

vararr=[a,b,c

for(variteminarr){

console.log(item)//012

console.log(arr[item])//abc

}

四、forof

ES6中新增加的语法forof语句创建一个循环来迭代可迭代的对象。在ES6中引入的forof循环,以替代forin和forEach(),并支持新的迭代协议。forof允许你遍历Arrays(数组),Strings(字符串),Maps(映射),Sets(集合)等可迭代的数据结构等。

循环一个数组:

letarr=[A,B,C]

for(letvalofarr){

console.log(val)

//ABC

循环一个字符串:

letiterable=abc

for(letvalueofiterable){

console.log(value);

//a

//b

//c

循环一个Map:

letiterable=newMap([[a,1],[b,2],[c,3]]);

for(let[key,value]ofiterable){

console.log(value);

for(letentryofiterable){

console.log(entry);

//[a,1]

//[b,2]

//[c,3]

循环一个Set:

letiterable=newSet([1,1,2,2,3,3]);

for(letvalueofiterable){

console.log(value);

//3

循环一个拥有enumerable属性的对象

forof循环并不能直接使用在普通的对象上,但如果我们按对象所拥有的属性进行循环,可使用内置的Object.keys()方法:

for(varkeyofObject.keys(someObject)){

console.log(key+:+someObject[key]);

}

循环一个生成器(generators):

function*fibonacci(){//ageneratorfunction

let[prev,curr]=[0,1];

while(true){

[prev,curr]=[curr,prev+curr];

yieldcurr;

for(letnoffibonacci()){

console.log(n);

//truncatethesequenceat1000

if(n=1000){

break;

}

五、jQuery里面的$.each

$.each(arr|obj,function(k,v))

可以用来遍历数组和对象,其中k表示索引值或者key值,v表示value值

vararr=[a,b,c]

$.each(arr,function(key,val){

console.log(key,val);

//0a

//1b

//2c

六、jQuery里面的$().each()

$().each()在dom处理上面用的较多,主要是用来遍历DOMList。如果页面有多个input标签类型为checkbox,对于这时用$().each()来处理多个checkbox,例如:

$(input[name=checkbox]).each(function(i){

if($(this).attr(checked)==true){

//操作代码

}

推荐在循环对象属性的时候使用forin,在遍历数组的时候的时候使用forof;

forin循环出的是key,forof循环出的是v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论