当我们需要遍历键值对形式的对象或Map时,可以使用JavaScript中的for...in循环和forEach方法。
for...in循环
for...in循环可以遍历对象和Map中的所有键值对,格式如下:
for(var key in obj/map) {
// 对每个键值对进行操作
}
其中,key
是对象/Map中的每个键,obj/map
是我们需要遍历的对象/Map。
示例:
var obj = {name: 'Alice', age: 18};
for(var key in obj) {
console.log('Key: ' + key + ', Value: ' + obj[key]);
}
输出结果:
Key: name, Value: Alice
Key: age, Value: 18
forEach方法
forEach方法是JavaScript数组中的一个方法,但是它也可以被用来遍历Map,可以通过数组对象调用该方法。示例:
var map = new Map();
map.set('name', 'Alice');
map.set('age', 18);
map.forEach(function(value, key) {
console.log('Key: ' + key + ', Value: ' + value);
})
输出结果:
Key: name, Value: Alice
Key: age, Value: 18
需要注意的是,forEach方法的第一个参数是一个函数,该函数接收两个参数,分别是Map中的值和对应的键。如果需要在函数中使用this
来指向当前的对象,可以将this作为第二个参数传入:
var obj = {
name: 'Alice',
age: 18,
show: function() {
var self = this;
var map = new Map();
map.set('name', 'Alice');
map.set('age', 18);
map.forEach(function(value, key) {
console.log(key + ':' + value + ', Current object: ' + self.name);
}, this);
}
}
obj.show();
输出结果:
name:Alice, Current object: Alice
age:18, Current object: Alice
上面的代码中,我们可以看到使用forEach方法遍历Map中的键值对,同时使用this
指向当前的对象,并在函数中使用了self
变量来缓存this的值,避免了直接使用this可能发生的问题。
除了for...in和forEach方法,ES6的for...of循环也可以遍历Map,详细用法可以自行查看相关文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Js遍历键值对形式对象或Map形式的方法 - Python技术站