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
的缺点。 - 可以和
break
、continue
、return
配合使用。
总之,优先考虑使用此语法。
--完--
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。