js循环
数组遍历
-
for、forEach、for ...of小结:三者都是基本的由左到右遍历数组
forEach 无法跳出循环;for 和 for ..of 可以使用 break 或者 continue 跳过或中断。
for ...of 直接访问的是实际元素。for 遍历数组索引,forEach 回调函数参数更丰富,元素、索引、原数组都可以获取。
for ...of 与 for 如果数组中存在空元素,同样会执行。 -
some、every小结:some、every都是做数组条件判断的,都是返回一个布尔值。
两者都可以中断。
some若某一元素满足条件返回true,循环中断;所有元素不满足条件,返回false。
every与some相反,若有一个元素不满足条件返回false,循环中断;所有元素满足条件,返回true。 -
filter、map小结:filter、map都是生成一个新数组,都不会改变原来的数组。
filter、map都会跳过空元素。
map会将回调函数的返回值组成一个先数组,数组长度与原数组一致。
filter会将符合回调条件的元素组成一个新的数组,数组长度与元素组不一致。
map生成的新数组元素元素是可自定义。
filter生成的新数组元素不可自定义,与对应原数组元素一致。 -
find、findIndex小结:find、findIndex都是用来查找数组元素。
find方法返回数组中满足callback函数的第一个元素的值。如果不存在返回undefined。
findIndex他返回数组中找到的元素的索引,而不是值,如果不存在返回 -1。 -
reduce计算对象数组某一属性的总和。
对象数组最大/最小值获取。
对象遍历
-
for in小结:使用 for in 循环时,返回的是所有能够通过对象访问的、可枚举的属性,既包括存在于实例中的属性,也包括存在于原型中的实例。如果只需要获取对象的实例属性,可以使用 hasOwnProperty 进行过滤。
使用时,要使用(const x in a)而不是(x in a)后者将会创建一个全局变量。
-
Object.keys()小结:用于获取用户对象所有的可枚举的属性值,但不包括原型中的属性,然后返回一个由属性名组成的数组。
-
Object.values()用于获取对象自身所有的可枚举的属性值,但不包括原型中的属性,然后返回一个由属性值组成的数组。
-
Object.entries()用于获取对象自身所有的可枚举的属性值,但不包括原型中的属性,然后返回二维数组。每一个数组由对象的属性名、属性值组成。
-
Object.getOwnPropertyNames()用于获取对象自身所有的可枚举的属性值,但不包括原型中的属性,然后返回一个由属性名组成的数组。