
本文主要介绍,ES6新特性 提供了 Map 数据结构。包括(size,get,set,has,clear,delete), 它类似于对象,也是键值对的集合。但是“键”的范围不限于字符串,各种类 型的值(包括对象)都可以当作键。Map 也实现了iterator 接口,所以可以使用『扩展运算符』和 『for...of...』进行遍历;
ES6新特性之map,先看Map的使用测试图

ES6新特性之Map 的属性和方法:
- size 返回 Map 的元素个数;
 - set 增加一个新元素,返回当前 Map;
 - get 返回键名对象的键值;
 - has 检测 Map 中是否包含某个元素,返回 boolean 值;
 - clear 清空集合,返回 undefined;
 - delete 删除元素;
 
ES6新特性之Map 基本使用
- 创建一个空map
 
let m = new Map();
- 创建一个非空map
 
let m2 = new Map([['name','fujuhao.com'],['age',22]]);
- Size 查询个数
 
console.log(m2.size); // 2
- Set 增加新元素
 
m2.set('height','1.88'); m2.set('weight','80KG'); console.log(m2); 
// Map(4) {'name' => 'fujuhao.com', 'age' => 22, 'height' => '1.88', 'weight' => '80KG'}
- Get 返回键名对应的值
 
console.log(m2.get('name')); // fujuhao.com
- Has 检测map中是否包含某个元素
 
console.log(m2.has('name')); // true
- Delete 删除
 
m2.delete('weight'); console.log(m2); 
// Map(3) {'name' => 'fujuhao.com', 'age' => 22, 'height' => '1.88'}
- 遍历
 
for(let v of m2){ 
    console.log(v); 
    // 打印出的结果 
    // ['name', 'fujuhao.com'] 
    // ['age', 22]
    // ['height', '1.88']
}
- 清空
 
m2.clear(); console.log(m2); // Map(0) {size: 0}
Map的使用场景
假设后台返回的数据是一个数组对象,如果想对数组里的对象的元素增加,减少或改变一些值,此时我们就可以使用map进行重组。
var array = [
    { title: '测试1', status: 0},
    { title: '测试2', status: 1},
    { title: '测试3', status: 0},
    { title: '测试4', status: 1}
];
console.log(array)
let status = array.map((item) => {
    // 重组成一个新的对象返回
    return {
        name: item.title,
        statusText: item.status ? '通过' : '未通过'
    }
})
console.log(status);
// (4) [
//     0: {name: '测试1', statusText: '未通过'}
//     1: {name: '测试2', statusText: '通过'}
//     2: {name: '测试3', statusText: '未通过'}
//     3: {name: '测试4', statusText: '通过'}
//     length: 4
// ]
The Posts
- ES10新特性_fromEntries_trimStart_trimEnd_flat_flatMap_descriptionMar 24, 2022
 - ES9_rest参数与es9_spread扩展运算符Mar 23, 2022
 - ES6新特性_模块化(module)Mar 17, 2022
 - ES6新特性_number数值扩展与object对象方法扩展Mar 16, 2022
 - ES6新特性_class类声明继承constructor,super,static,set,get详细介绍Mar 12, 2022
 - ES6新特性_Map用法和使用场景size,get,set,has,clear,deleteMar 12, 2022
 - ES6新特性_集合(set)Mar 10, 2022
 - ES6新特性_Promise介绍与基本使用Mar 10, 2022
 - ES6新特性_生成器函数Mar 9, 2022
 - ES6新特性_迭代器Mar 9, 2022
 - ES6新特性_Symbol基本使用Mar 9, 2022
 - ES6新特性_扩展运算符Mar 9, 2022
 - ES6新特性_rest参数Mar 8, 2022
 - ES6新特性_函数参数的默认值Mar 8, 2022
 - ES6新特性_箭头函数Mar 8, 2022
 - ES6新特性_简化对象的写法Mar 8, 2022
 - ES6新特性_模板字符串Mar 8, 2022
 - ES6新特性_变量的解构赋值Mar 8, 2022
 - ES6新特性_常量声明constMar 8, 2022
 - ES6新特性_变量声明letMar 8, 2022