java遍历map的key和value(JavaScript 中 Object,Map,Set 及数组遍历方法)
导读:Object(对象) for in 遍历出对象可枚举的"属性",包含继承的可枚举属性...
Object(对象)
for in
遍历出对象可枚举的"属性" ,包含继承的可枚举属性 var person = { name: 小明, birth: 1990, height: 1.70 }; for(var x in person){ console.log(x); console.log(person[x]); // 不能用person.x ,会被认为是取person的x属性 }Object.keys ,Object.values
分别遍历出对象的"属性"和"值" ,不包含继承的 var person = { id:1, name:zhangsan, age:18 } console.log(Object.keys(person)); console.log(Object.values(person)); // 输出数组 Object.keys(person).forEach((key)=>{ console.log(key+:+person[key]); })Object.getOwnPropertyNames
遍历出对象的"属性" ,不包含继承的 与 Object.keys 的区别:Object.keys 返回可枚举的 ,Object.getOwnPropertyNames 返回所有的 。 const person = { id:1, name:zhangsan, age:18 } Object.getOwnPropertyNames(person).forEach(function(key){ console.log(key+:+person[key]); })Map(哈希表)
for of
遍历出每个键值对数组 var m = new Map([[1, x], [2, y], [3, z]]); for (var x of m) { console.log(x[0] + = + x[1]); }map.values ,map.keys
同 ObjectforEach
var m = new Map([[1, x], [2, y], [3, z]]); m.forEach((value, key, map)=>{ console.log(value); })map.entries
作用同 for ofSet(集合)
同 Map ,区别是:
set.keys 和 set.values 相等 在 forEach 中前两个参数一致 ,都是元素本身 set.entries 会遍历出数组,类似 [A, A] ,不建议使用Array(数组)
普通 for 遍历 for 改良:for(var i=0, len=arr.length, i<len, i++) for in (效率低) for of forEach具体情况不赘述
最后
for in 和 for of 区别
for in 循环遍历的是对象的属性名称
Array 数组实际上也是一个对象 ,它的每个元素的索引被视为一个属性,当我们给 Array 对象添加了额外的属性后 ,for in 循环将出现瑕疵:
var a = [A, B, C]; a.name = Hello; for (var x in a) { console.log(x); // 0, 1, 2, name }for in 循环将把 name 包括在内 ,但 Array 的 length 属性却不包括在内
for of 循环集合属性对应的值
var a = [A, B, C]; a.name = Hello; for (var x of a) { console.log(x); // A, B, C }Object 不能用 for of 遍历,Map 和 Set 不能用 for in 遍历
forEach 遍历类型
forEach 适用于遍历数组 ,Map ,Set 。其他类型比如 Object 可以用 Object.keys 得到数组然后遍历
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!