当前位置: 首页 > Web前端 > HTML5

循环的几种类型

时间:2023-04-05 18:30:11 HTML5

循环遍历数组的时候,你还在用for语句满世界跑吗?曾经带着for满世界跑,最后发现给自己挖了个大坑,层层嵌套循环,理清各种逻辑关系总是要花很多时间,而且很容易逻辑混乱.终于,历经千辛万苦,理清了逻辑,实现了功能需求。但现在问题来了?性能、可扩展性、可重用性……等等,我在合着上花了很多心血,但都白费了。这时,有鼻涕有泪,满是辛酸;这时候有人说,有那么多好用的API,你怎么不用呢?这一刻我恍然大悟。数组(Array)Array.prototype.forEach():该方法为数组的每个元素执行一次提供的函数。array.forEach(callback(currentValue,index,array){//dosomething},this)参数callback:为数组中的每个元素执行的函数,接收三个参数:currentValue(currentvalue):当前数组中的值array当前正在处理的元素。index(索引):当前元素在正在处理的数组中的索引。array:forEach()方法所操作的数组。thisArg可选:可选参数。执行回调函数时用作this的值(引用对象)。返回值:undefined.Array.prototype.filter():方法创建一个新数组,其中包含通过提供的函数实现的测试的所有元素。constnew_array=arr.filter(callback[,thisArg])callback:用于测试数组的每个元素的函数。使用参数(元素、索引、数组)调用。返回true保留元素(通过测试),false不保留它。thisArg:可选。执行回调时为此使用的值。返回值:通过测试的元素集合的新数组Array.prototype.map():创建一个新数组,其结果是对数组中的每个元素调用提供的函数的结果。letnew_array=arr.map(functioncallback(currentValue,index,array){//返回new_array的元素}[,thisArg])callback:生成新数组元素的函数,使用三个参数:currentValue:回调参数的第一个,正在处理的数组中的当前元素。index:回调的第二个参数,当前元素在正在处理的数组中的索引。array:回调的第三个参数,调用map方法的数组。这个参数:可选。执行回调函数时要使用的this值。Array.prototype.every():如果数组中的每个元素都满足测试函数则返回真,否则返回假。Array.prototype.some():如果数组中至少有一个元素满足测试函数则返回真,否则返回假。也许明天我们不会用for去走遍世界,而是在可迭代对象中使用foroffor...of语句(包括Array、Map、Set、String、TypedArray、argumentsobject等)创建迭代循环,调用自定义迭代挂钩,并针对每个不同属性的值执行语句。对于(可迭代的变量)迭代数组:letiterable=[10,20,30];for(letvalueofiterable){console.log(value+1);}//11,21,31迭代String:letiterable="boo";for(letvalueofiterable){console.log(value);}//a,b,cvariable:在每次迭代中,将不同属性的值分配给变量。iterable:一个对象,其枚举属性是可枚举的。for...of和for...in的区别:for...in语句以原始插入顺序遍历对象的可枚举属性。为objectfor...of语句遍历可迭代对象定义要迭代的数据。对于Array、Map、Set、String、TypedArray、arguments对象等,最好在浏览器中调试。如果存在对象(Object)对象循环,我知道forin是最好的选择!用法与of相同。该对象是一个类似数组的对象。当然,我们也可以将对象转为数组:1.Object.keys():返回一个数组,包含指定对象的所有可遍历属性的名称。2.Array-likeconversionForanarray:Array.prototype.slice.call(arguments)3.Array.from():转换伪数组或可迭代对象(包括argumentsArray,Map,Set,String...)成一个数组对象。...待续