本文主要介绍,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