javascript Object 与ES6 Map 对比
Object 的键名key只可以是String 或者数字,或者Symbol,而Map的key它可以是任何类型。
一、取出Objeect 和Map 的键名Key
我们通常取出Object的键名用for in 循环,
例如:let simpleObj = {
'keyOne' : '键值一',
'keyTwo' : '键值二',
'keyThree' : '键值三'
}
for (const key in simpleObj) {
console.log(key)
}
输出结果:keyOne、keyTwo、keyThree
··········································································································································
const m = new Map([
['xkey', 1],
['ykey', 2]
]);
for (const iterator of m) {
console.log(iterator[0])
}
输出结果:xkey ykey
··········································································································································
m.forEach(element => {
console.log(element)
});
输出结果:1,2
二、读取/删除元素时的区别
Obj:
//或者使用 ES2020 新增的条件属性访问表达式来读取
o?.x; // 1
o?.['y']; // 2
//删除
delete o.b;
Map:
const o = {
x: 'centos',
y: 'nbclass'
};
//读取
o.x; // centos
o['y']; // nbclass
//新增/修改
o.x = 1;
o['y'] = 2;
const mappp = new Map();
//新增/修改
mappp.set('x', 1);
mappp.set('b', 3);
console.log(mappp);
输出结果:{"x" => 1, "b" => 3}
//读取
mappp.get('x');
console.log(mappp);
输出结果:Map(2) {"x" => 1, "b" => 3}
//删除
mappp.delete('b');
console.log(mappp);
输出结果:Map(1) {"x" => 1}

浙公网安备 33010602011771号