1. 普通for循环

const arr = ['a', 'b', 'c', 'd']

for (let i = 0; i < arr.length; i++) {
  console.log(arr[i]) // 'a', 'b', 'c', 'd'
}

不好之处:写法繁琐,因此尽量别用。

2. forEach循环

const arr = ['a', 'b', 'c', 'd']

arr.forEach((item) => {
  if (item === 'c') {
    return false
  }

  console.log(item) // 'a', 'b', 'd'
})

不好之处:无法中途退出forEach循环,return命令也不能奏效。

3. for-in循环

const arr = ['a', 'b', 'c', 'd']

arr.foo = 'hello'

for (let item in arr) {
  console.log(item) // '0', '1', '2', '3', 'foo'
}

不好之处:

  • 数组的键名是数字,但for-in是以字符串做为键名。
  • for-in循环不仅可以遍历数字键名,还会遍历手动添加的其他键。

总之,for-in循环是为遍历对象设计的,并不适用于数组

4. for-of循环

const arr = ['a', 'b', 'c', 'd']

arr.foo = 'hello'

for (let item of arr) {
  console.log(item) // 'a', 'b', 'c', 'd'
}

好处:

  • 语法简介,且没有for-in的缺点。
  • 可以和breakcontinuereturn配合使用。

总之,优先考虑使用此语法

--完--


BigDipper
17 声望0 粉丝

« 上一篇
类数组对象
下一篇 »
js的迭代器