js中的循环

while

只要条件为真,就会不断循环执行代码块,先判断条件,条件成立才会执行。

do...while

先运行一次循环体,再判断条件是否成立。

for

可break跳出循环

for...in

可循环数组或者对象,对象i为键名,数组i为索引。
任何对象都继承了Object对象或者其他对象,继承的类的属性默认是不可遍历的,for...in循环都会跳过。
一般不便利数组,无法控制顺序。

map()循环

map方法将数组的所有成员依次传入函数参数,然后把每一次执行结果组成一个新数组返回。
不会改变原数组。
map方法接收一个函数作为参数,该函数调用时,map方法向它传递三个参数:当前成员、当前位置和数组本身。
map方法还可以接收第二个参数,用来绑定回调函数内部的this变量,将回调函数内部的this指向第二个参数,间接操作这个参数。

forEach()循环

与map方法类似,也是对数组的所有成员依次执行。参数函数。但是forEach()方法不返回值,只用来操作数据。
参数是一个函数,这个函数同样接收三个参数:当前值、当前位置、整个数组。
forEach循环和map循环一样可以绑定回调函数内部的this变量,间接操作其他变量。

filter()循环

filter()方法用于过滤数组成员,满足条件的成员组成新数组返回。
它的参数是一个函数,所有的数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回,该方法不会改变原数组。
filter()函数参数也可以接收三个参数:当前成员、当前位置、整个数组。
filter()也可以接收第二个参数,用来绑定参数函数内部的this变量。

some()、every()

循环遍历,统计数组是否满足某个条件。
返回一个布尔值,表示判断数组成员是否符合某个条件。接收一个函数作为参数,所有的数组成员依次执行该函数。
该函数接受三个参数:当前成员、当前位置和整个数组,然后返回一个布尔值。

some()方法是只要一个成员的返回值是true,则整个some方法的返回值就是true,否则返回false。当判断出来有一个成员是true,直接break。
every()方法是所有的成员的返回值都是true,整个every()方法才返回true,否则返回false,当遇到一个是false时跳出循环。

reduce()、reduceRight()

依次处理数组中的每个成员,最终累计为一个值。它们的差别是reduce是从左到右,reduceRight是从右到左。
两个方法的第一个参数都是函数。该函数接受以下四个参数:
1】累积变量:默认为数组的第一个成员;
2】当前变量:默认为数组的第二个成员;
3】当前位置;
4】原数组。
第二个参数相当于设置了默认值,处理空数组时尤其有用,可避免一些空指针异常。

Object.keys()、Object.values()、Object.entries()

参数是一个对象,返回一个数组。该数组的成员都是该对象自身的(不是继承)所有属性名,且只返回可枚举属性。

Object.getOwnPropertyNames()

遍历对象属性,与Object.keys()类似,但是它可以返回不可枚举属性,
由于js没有提供计算对象属性个数的方法,所以可以用这两个方法代替。
Object.keys(obj).length;
Object.getOwnPropertyNames(obj).length;

js中的循环

上一篇:node.js相关知识


下一篇:Android studio修改包名