- 循环数组
var arr = [a,b,c,d] for (var i in arr){ console.log(i) //0 1 2 3 } for (var i of arr){ console.log(i) //a b c d }
-
循环json
var json = {'a' : 'A', 'b' : 'B', 'c' : 'D', 'd' : 'D'} for (var name in json){ console.log(name) //'a' 'b' 'c' 'd' } for (var name of json){ console.log(name) //...is not a function } // for of不能循环json,真正的目的是为了循环Map对象
-
Map对象
和json相似,也是一种key-value形式。
Map对象是为了和for of循环配合而生的。
var map = new Map() // 设置: map.set(name, value) // 获取: map.get(name) // 删除: map.delete(name) // for of 循环 map: var map = new Map() map.set('a', 'A') map.set('b', 'B') map.set('c', 'C') for(var name of map){ console.log(name) //['a', 'A'], ['b', 'B'], ['c', 'C'] } for(var key of map.keys()){ //只循环key console.log(key ) //a b c } for(var value of map.values()){ //只循环value console.log(value ) //A B C }
-
Object.keys() 返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性).
var obj = {'0':'a','1':'b','2':'c'}; Object.keys(obj).forEach(function(key){ console.log(key,obj[key]); }); // 0 a // 1 b // 2 c
-
Object.getOwnPropertyNames(obj) 返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性).
var obj = {'0':'a','1':'b','2':'c'}; Object.getOwnPropertyNames(obj).forEach(function(key){ console.log(key,obj[key]); }); // 0 a // 1 b // 2 c
-
Reflect.ownKeys(obj) 返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举.
var obj = {'0':'a','1':'b','2':'c'}; Reflect.ownKeys(obj).forEach(function(key){ console.log(key,obj[key]); }); // 0 a // 1 b // 2 c
javascript语法 --- for of/for in循环与Map对象,遍历对象的方法
最新推荐文章于 2024-02-11 16:52:38 发布