ES6新增的循环

矫情吗;* 2021-12-16 08:45 867阅读 0赞

1、以前for循环,for in循环

2、ES6新增循环:for of 循环:遍历(迭代,循环)整个对象

两者的区别:
for in循环:既可以循环数组,又可以循环json

循环数组:i代表数组的索引
var arr1=[‘apple’,’banana’,’appel’,’orange’];
for(var i in arr1){
console.log(i); //0,1,2,3
}
循环json:name代表json的索引
var json=[a:’apple’,b:’pear’,c;’orange’];
for(var name in json){
console.log(name); //a,b,c
console.log(json[name]);
}

for of循环:可以循环数组,不可以循环json,该循环新增主要是为了循环map对象

循环数组:(用的很少)
1)只循环值value:
var arr1=[‘apple’,’banana’,’appel’,’orange’];
for(var value of arr1){
console.log(value); //‘apple’,’banana’,’appel’,’orange’
}
2)只循环索引key:
for(var key of arr1.keys()){
console.log(key); //0,1,2,3
}
3)值和索引都循环:
for(var name of arr1.entries()){
console.log(name); //0 apple,1 banana,2 appel,3 orange
}

循环map对象:
map对象:和json相似,也是一种key-value的形式,但与json对象也不完全相同
map对象是为了和for of循环而生的

创建并设置json对象:
var json={a:’apple’,b:’pear’,c:’banana’,d;’orange’}
获取json对象的某一项:json.a/json.b/json.c
删除json对象的某一项:delete json.b
循环json对象:使用for in 循环
for(var i in json){
console.log(json[i]);
}

创建map对象:var map=new Map();
设置map对象的内容:map.set(key,value);
获取map对象的内容:map.get(name);
删除map对象的内容:map.delete(name);
循环map对象:不能使用for in 循环
map循环的简写:
1)同时循环key和value
for(var name of map){
console.log(name); //这里的name既包含key,也包含value
}
2)只循环key,或者只循环value
for(var [key,value] of map){
console.log(key,value);
console.log(key);
console.log(value);
}
map循环的完整写法:
1)同时循环key和value,默认的情况是调用了map.entries()
for(var name of map){
console.log(name);
}
等价于:
for(var name of map.entries()){
console.log(name);
}
2)只循环索引key
for(var key of map.keys()){
console.log(key);
}
3)只循环value
for(var value of map.values()){
console.log(value);
}
示例:
var map=new Map();
map.set(‘a’,’apple’);
map.set(‘b’,’pear’);
map.set(‘c’,’orange’);
map.set(‘d’,’banana’);
alert(map.get(‘a’)); //apple
map.delete(‘b’); //删除pear这一项
for(var name of map){
console.log(name); //a apple, c orange, d banana
}
等价于:
for(var [key,value] of map){
console.log(key,value); //a apple, c orange, d banana
}

发表评论

表情:
评论列表 (有 0 条评论,867人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ES6新增内容

    ES6的新增内容 关于let 和const变量的申明 let申明的变量不存在预解析 let声明不允许变量的重复 es6引入了块作用域,在块作用域内let和c

    相关 ES6新增内容

    1、map、filter和reduce的区别 map 作用是生成一个新数组,遍历原数组,将每个元素拿出来做一些变换然后放入到新的数组中。map 的回调函数接受三个参数,分

    相关 ES6新增循环

    1、以前for循环,for in循环 2、ES6新增循环:for of 循环:遍历(迭代,循环)整个对象, 两者的区别: for in循环:既可以循环数组,