对于JS我们常见的循环有下面这些:
代码语言:javascript复制 for 循环
for in 循环
for of 循环
forEach()
map()
filter()
some()
every()
下面要循环的数组
代码语言:javascript复制 var arr = ['a', 'b', 'c'];
1、for 循环
代码语言:javascript复制for (var i = 0; i < arr.length; i ) {
console.log(arr[i])
}
2、for in 循环
代码语言:javascript复制for (var i in arr) {
console.log(arr[i])
}
3、for of 循环
代码语言:javascript复制// for of 循环 直接得到的就是值 !!!
for (var v of arr) {
console.log(v)
}
4、forEach() 循环
代码语言:javascript复制// forEach循环没有返回值 默认返回 undefined
var newArr = [];
arr.forEach(function (v, i) {
// console.log(v, i)
// return v '哈'; // 这能这样子!!! 没有返回值
newArr.push( v 'haha' )
})
// console.log(newArr) // undefined
console.log(newArr)
5、map循环方法
代码语言:javascript复制// map方法 和foreach一样,它会把返回的元素,添加进入一个新数组,然后,返回这个全新的数组
var newArr = arr.map(function (v, i) {
// console.log(v, i)
return v '嘿嘿'
})
console.log(newArr)
6、filter循环方法
代码语言:javascript复制// filter是循环数组,然后过滤数据, 把满足条件的过滤出来,返回一个全新的数组
var ages = [16, 17, 18, 19, 20];
var newAges = ages.filter(function (v, i) {
// console.log(v, i)
return v >= 18;
})
console.log(newAges)
7、some 循环方法
代码语言:javascript复制// some 循环方法, 只要有一个满足 就返回true 否则返回false
var ages = [16, 17, 18, 19, 20];
var rst = ages.some(function (v, i) {
// console.log(v, i)
return v > 19
})
console.log(rst)
8、every 循环方法
代码语言:javascript复制// every 循环方法 每一个都满足 才返回true 否则返回false
var ages = [16, 17, 18, 19, 20];
var rst = ages.every(function (v, i) {
// console.log(v, i)
return v >= 16
})
console.log(rst)