版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 注册会计师审计中其他信息的阅读识别程序
- 学生自主管理好处多多
- 自动控制系统计算机仿真 课件全套 张晓江 第1-8章 自动控制系统仿真概述-电力系统工具箱及其应用实例、符号运算
- 皮革加工厂生产工艺流程细则
- 某食品厂食品安全检验细则
- 某机械厂生产效率提升细则
- 2026浙江台州市中医院招聘心电图诊断医生(编外)1人备考题库及参考答案详解(黄金题型)
- 2026山东济南市第五人民医院招聘卫生高级人才和博士(控制总量)8人备考题库含答案详解(巩固)
- 2026春季浙商银行校园招聘备考题库带答案详解(黄金题型)
- 2026山西经济管理干部学院(山西经贸职业学院)招聘博士研究生5人备考题库及答案详解(夺冠)
- 2026年分析化学考研复试高频面试题包含详细解答
- 综合材料绘画综合材料绘画概述11第一节综合材料绘画的概念
- 《危险化学品安全法》与《危化品安全管理条例》条款对照表
- 吉林省四平市2026年中考物理押题卷(含答案解析)
- 赣州市属国企招聘笔试题库2026
- 2025年上半年黑龙江中医药大学佳木斯学院公开招聘专职思政教师3人笔试参考试题附答案解析
- 2025重庆市属事业单位第四季度招聘工作人员335人笔试考试备考试题及答案解析
- 2025年少先队辅导员技能大赛考试基础知识测试题附参考答案(共三套)
- 道路损坏修缮协议书模板
- 全国民用建筑工程设计技术规范
- DZ∕T 0400-2022 矿产资源储量规模划分标准(正式版)
评论
0/150
提交评论