1、forEach:数组的遍历,没有返回值,循环中不能停止,return不能停止循环(只能遍历数组)
array.forEach((item, index, array) => {
console.log(item, index)
})
2、for循环:return可以跳出循环,continue可以跳出本次循环,break跳出循环,可将数组的length缓存下来,避免重复获取长度(性能好,适用数组、字符串)
for (let i = 0; i < arr.length; i++) {
console.log(arr[i])
}
3、for...in:循环不能中断,一般用于对象,循环的是key(效率低,适用对象、数组),i是key
for (let i in arr) {
console.log(arr[i], 'for...in ============arr')
}
4、for...of:return可以跳出循环,continue可以跳出本次循环,break跳出循环(适用数组、字符串),i是value
for (let i of arr) {
console.log(i, 'for...of==============')
}
5、map:要有return(适用数组),返回一个新数组,原数组不受影响
let arr2 = arr.map((item, index) => {
return item + 10
})
6、every:返回false就停止循环
let arr = [1, 2, 3, 4, 5, 6]
arr.every((item, index) => {
console.log(item, '=================')
if (index === 3) {
return false
} else {
return true
}
})
7、some:返回true就停止循环
let arr = [1, 2, 3, 4, 5, 6]
arr.some((item, index) => {
console.log(item, '==========some')
if (index === 3) {
return true
} else {
return false
}
})
8、filter:返回符合renturn条件的item,组成的数组
let arr1 = arr.filter((item, index) => {
console.log(item, '===========filter===')
return index < 4
})