ES6: Map数据结构

简介: ES6: Map数据结构

概念: 类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。


初识Map

let m1 = new Map([
  ["name", "Nathan"],
  ["age", 100],
  [{a:1}, "WUXI"]
])
console.log(m1); // Map(3) {'name' => 'Nathan', 'age' => 100, {…} => 'WUXI'}
let m2 = new Map()
m2.set("name", "Nathan")
m2.set("age", 100)
m2.set({a:1}, "WUXI")
console.log(m2); // Map(3) {'name' => 'Nathan', 'age' => 100, {…} => 'WUXI'}

实例的属性和方法


size:返回 Map 结构的成员总数。


Map.prototype.set(key,value):添加key对应的value,返回 Map 结构本身。


Map.prototype.get(key):获取key对应的value


Map.prototype.delete(key):删除某个键(键名+键值), 返回true或者false


Map.prototype.has(key):某个键是否在当前 Map 对象之中, 返回true或者false


Map.prototype.clear():清除所有成员,没有返回值。

let m1 = new Map([
  ["name", "Nathan"],
  ["age", 100],
  [{a:1}, "WUXI"]
])
console.log(m1); // Map(3) {'name' => 'Nathan', 'age' => 100, {…} => 'WUXI'}
console.log(m1.set("test", 100)); // Map(4) {'name' => 'Nathan', 'age' => 100, {…} => 'WUXI', 'test' => 100}
console.log(m1.get("age")); // 100
console.log(m1.delete("test")); // true
console.log(m1.has("test")); // false
console.log(m1); // Map(3) {'name' => 'Nathan', 'age' => 100, {…} => 'WUXI'}
m1.clear()
console.log(m1);


遍历

Map.prototype.keys():返回键名的遍历器。

Map.prototype.values():返回键值的遍历器。

Map.prototype.entries():返回所有成员的遍历器。

Map.prototype.forEach():遍历 Map 的所有成员。

let m1 = new Map([
  ["name", "Nathan"],
  ["age", 100],
  [{a:1}, "WUXI"]
])
for(let i of m1.keys()) {
  console.log(i); // name age {a: 1}
}
for(let i of m1.values()) {
  console.log(i); // Nathan 100 WUXI
}
for(let [index, item] of m1.entries()) {
  console.log(index + ': ' + item); 
}
for(let [index, item] of m1) { // m1和m1.entries()的迭代器是同一个迭代器
  console.log(index + ': ' + item); 
} 
/*
  name: Nathan
  age: 100
  [object Object]: WUXI
*/
m1.forEach((item, index) => {
  console.log(item, index);
})
/*
  Nathan name
  100 'age'
  WUXI {a: 1}
*/


参考: 014-ES6-Map数据结构_哔哩哔哩_bilibili


相关文章
|
23天前
|
存储 Java
告别混乱!用Java Map优雅管理你的数据结构
【10月更文挑战第17天】在软件开发中,随着项目复杂度增加,数据结构的组织和管理至关重要。Java中的Map接口提供了一种优雅的解决方案,帮助我们高效、清晰地管理数据。本文通过在线购物平台的案例,展示了Map在商品管理、用户管理和订单管理中的具体应用,有效提升了代码质量和维护性。
76 2
|
23天前
|
存储 Java 开发者
Java Map实战:用HashMap和TreeMap轻松解决复杂数据结构问题!
【10月更文挑战第17天】本文深入探讨了Java中HashMap和TreeMap两种Map类型的特性和应用场景。HashMap基于哈希表实现,支持高效的数据操作且允许键值为null;TreeMap基于红黑树实现,支持自然排序或自定义排序,确保元素有序。文章通过具体示例展示了两者的实战应用,帮助开发者根据实际需求选择合适的数据结构,提高开发效率。
54 2
|
21天前
|
存储 Java 开发者
Java中的Map接口提供了一种优雅的方式来管理数据结构,使代码更加清晰、高效
【10月更文挑战第19天】在软件开发中,随着项目复杂度的增加,数据结构的组织和管理变得至关重要。Java中的Map接口提供了一种优雅的方式来管理数据结构,使代码更加清晰、高效。本文通过在线购物平台的案例,展示了Map在商品管理、用户管理和订单管理中的具体应用,帮助开发者告别混乱,提升代码质量。
26 1
|
2月前
ES6中map对象的使用,确实比Object好使哈
ES6中Map对象的使用优势,包括任意类型作为键、直接获取大小、增删查改操作等。Map的键可以是函数、对象、NaN等,支持forEach循环和for...of循环。
30 1
ES6中map对象的使用,确实比Object好使哈
|
1月前
|
存储 缓存 Java
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
33 1
|
1月前
|
存储 自然语言处理 安全
【数据结构】Map的使用与注意事项
【数据结构】Map的使用与注意事项
25 1
|
28天前
|
存储
ES6中的Set数据结构的常用方法和使用场景
ES6中的Set数据结构的常用方法和使用场景
|
2月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
12天前
|
C语言
【数据结构】栈和队列(c语言实现)(附源码)
本文介绍了栈和队列两种数据结构。栈是一种只能在一端进行插入和删除操作的线性表,遵循“先进后出”原则;队列则在一端插入、另一端删除,遵循“先进先出”原则。文章详细讲解了栈和队列的结构定义、方法声明及实现,并提供了完整的代码示例。栈和队列在实际应用中非常广泛,如二叉树的层序遍历和快速排序的非递归实现等。
86 9
|
3天前
|
存储 算法
非递归实现后序遍历时,如何避免栈溢出?
后序遍历的递归实现和非递归实现各有优缺点,在实际应用中需要根据具体的问题需求、二叉树的特点以及性能和空间的限制等因素来选择合适的实现方式。
12 1