今天列举一下js中常用的循环方法,有遗漏的话麻烦在评论区里补充一下,谢谢!
- for
- for in(循环对象和数组)
- for of(循环数组)
- for each
- while 与 do while
- map() (数组)
- filter(筛选数组)
- Object.keys() 和 Object.values() (循环对象)
- Object.getOwnPropertyNames()(循环对象)
- Object.getOwnPropertySymbols() (循环Symbol)
for
break
跳出循环
continue
跳过本次循环,会继续执行后面
for(var a=0;a<10;a++) {
当a循环到3的时候,跳过3,continue继续执行后面
if(a==3) {
continue;
}
当a循环到5的时候,break直接跳出循环
if(a==5) {
break;
}
console.log(a);最后打印0,1,2,4
}
for in
for in
既能循环对象 也能 循环数组
var arr = [11,22,33,44,55,66]
let myself = {
'name' : '刘星雨',
'age' : 18,
'hobby' : '篮球',
'food' : 'hamburger',
'drink' : '茶',
}
i是索引 通过myself[i]可以拿到属性值
for(var i in myself) {
console.log(myself[i]);
}
n是下标 通过arr[n]可以拿到值
for(var n in arr) {
console.log(arr[n]);
}
for each
foreach
方法对数组的每个元素执行一次给定的函数
var arr = [11,22,33,44,55,66]
arr.forEach(function(item){
打印11,22,33,44,55,66
console.log(item);
})
Object.keys() 和 Object.values() 和 Object.getOwnPropertyNames()
Object.keys(对象名)
将对象中的属性名 遍历为一个新数组
Object.values(对象名)
将对象中的属性值 遍历为一个新数组
Object.getOwnPropertyNames()
静态方法返回一个数组,其包含给定对象中所有自有属性
var arr = [11,22,33,44,55,66]
let myself = {
'name' : '刘星雨',
'age' : 18,
'hobby' : '篮球',
'food' : 'hamburger',
'drink' : '茶',
}
console.log(Object.keys(myself));
console.log(Object.values(myself));
console.log(Object.getOwnPropertyNames(myself));
filter
filter
筛选数组 返回一个满足条件的新数组
var arr = [11,22,33,44,55,66]
newArr = arr.filter(function(item){
return item<22;
})
console.log(newArr);打印11
map()
map()
方法是数组原型的一个函数,该函数用于对数组中的每个元素进行处理,将其转换为另一个值,最终返回一个新的数组
var arr = [11,22,33,44,55,66]
const newArr1 = arr.map(function(item){
可以将整个数组*2
return item*2;
})
打印22,44,66,88,110,132
console.log(newArr1);