花几分钟重温一下,关于JavaScript循环指南的基础,记得一张图在前端开发过程中,我们经常使用JavaScript来提供各种循环和迭代的方法,常见的for、for…of、for…in、while、Array.forEach和Array.*(有一些类似于循环/迭代器的Array方法:Array.values()、Array.keys()、Array.map(),Array.reducer()等),而且这些都是很基础的东西,那么肯定有人会觉得这些都是很基础的东西,有什么好呢?整理这些东西的目的是为了有个框架,有个思维导图。所以做一个JS循环的思维导图就简单了。把杂乱零碎的知识融入一切,更容易记住基础知识。SimpleLoopfor只要满足特定条件,for循环就会重复执行。它通常用于将一段代码执行一定次数。Arrayloopconstarr=[1,2,3]for(leti=0;i{}};for(letkeyofObject.keys(enumerable))console.log(key);>property>methodfor(letvalueofObject.values(enumerable))console.log(value);>1>()=>{}for(letentryofObject.entries(enumerable))console.log(entry);>(2)["prop",1]>(2)["meth",?()]也可以通过使用for...in循环而不是内置的Object方法完成。for…infor…in循环是一种特殊类型的循环,它遍历对象的属性或数组的元素。遍历对象时,可以显示可枚举的对象属性letobject={a:1,b:2,c:3,method:()=>{}}for(letvalueinobject){console.log(value,object[value])}//output:1,2,3,()=>{}while只要指定条件的计算结果为真(true),while语句就会执行它的语句块。letc=0while(c++<5){console.log(c)}//output:1,2,3,4,5do…while和while很相似,do…while语句一直重复直到指定的条件求值假的。vari=1do{console.log(i)i++}while(i<=5)//output:1,2,3,4,5ArraysLoopsArray有多种迭代方式。一般来说,我们建议使用内置的Array方法进行循环操作,而不是for或while循环。Array方法附加到Array.prototype属性,这意味着可以直接从Array对象使用。例如,使用Array.forEach()方法对数组进行操作forEach定义:forEach方法对数组的每个元素执行一次给定的函数。返回值:noneletarr=['jack','tom','vincent']arr.forEach((name)=>console.log(`Mynameis${name}`))//output//我的名字isjack//Mynameistom//Mynameisvincentevery定义:检查数组的所有元素是否满足判断条件,全部满足则返回true,否则返回false返回值:booleanconstisBelowThreshold=(currentValue=currentValue<40)constarray1=[1,30,39,29,10,13]console.log(array1.every(isBelowThreshold))//output:truesome定义:数组中是否存在满足判断条件的元素。如果至少满足一个判断条件,则返回true,如果都不满足,则返回false返回值:booleanfilter定义:对数组的每个元素执行一次给定函数,并返回一个新数组返回值:newarrayconstwords=['spray','limit','elite','exuberant','destruction','present'];constresult=words.filter(word=>word.length>6);console.log(result);//预期输出:Array["exuberant","destruction","present"]map定义:该方法新建一个数组,result为调用提供函数一次后的返回值对于数组中的每个元素。返回值:新数组constarray1=[1,4,9,16];//传递一个函数来映射constmap1=array1.map(x=>x*2);控制台日志(地图1);//预期输出:Array[2,8,18,32]reduce&&reduceRight定义:reduce方法对数组中的每个元素执行您提供的reducer函数(按升序排列),并将其结果聚合为一个返回值价值。constarray1=[1,2,3,4];constreducer=(accumulator,currentValue)=>accumulator+currentValue;//1+2+3+4console.log(array1.reduce(reducer));//预期输出:10//5+1+2+3+4console.log(array1.reduce(reducer,5));//预期输出:15定义:reduceRight方法接受一个函数作为累加器(accumulator)和每个值(从右到左)将其归约为一个单一的价值。constarray1=[[0,1],[2,3],[4,5]].reduceRight((accumulator,currentValue)=>accumulator.concat(currentValue));console.log(array1);//预期output:Array[4,5,2,3,0,1]find()&findIndex()定义:find方法用于找出第一个符合条件的数组成员并返回该成员,如果没有符合条件的成员,返回未定义。constarray1=[5,12,8,130,44];constfound=array1.find(元素=>元素>10);控制台日志(找到);//预期输出:12定义:findIndex返回第一个满足条件的数组成员的位置,如果没有成员满足条件则返回-1。constarray1=[5,12,8,130,44];常量isLargeNumber=(元素)=>元素>13;console.log(array1.findIndex(isLargeNumber));//expectedoutput:3ReferencesTheCompleteGuidetoLoopsinJavaScriptLoopsanditeration(花几分钟再看一遍)Array(花几分钟再看一遍)