js循环

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()
    用于获取对象自身所有的可枚举的属性值,但不包括原型中的属性,然后返回一个由属性名组成的数组。

 

posted @ 2021-05-28 10:01  温少昌  阅读(183)  评论(0编辑  收藏  举报