map的结构和属性方法

版权声明:转载请注明出处 https://blog.csdn.net/qdmoment/article/details/82852057

学习一种新的数据结构,一般从三方面切入;

第一:数据结构的结构类型

第二:数据结构的定义方法

第三:数据结构的操作方法和属性

—————————————————————————————————————————————————————

传统局限性:

JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。

map结构作用:解决键值只能是字符串的问题

结构类型:

1,类似于对象,也是键值对的集合

2,“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键

object和map对比:Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应

map结构的定义方法:

const m = new Map(array)

注:参数array可选,参数array是类似于的二维数组

const map = new Map([
  ['name', '张三'],
  ['title', 'Author']
]);

map的属性:

1,size 属性:返回 Map 结构的成员总数

2,set(key, value) :设置或更新key值 set方法返回的是当前的Map对象,因此可以采用链式写法

3,get(key) :读取key对应的键值,如果找不到key,返回undefined

4,has(key) :返回布尔值,表示某个键是否在当前 Map 对象之中

5,delete(key): 删除某个键,返回布尔值

6,clear() :清除所有成员,没有返回值

map的遍历方法:

Map 结构原生提供三个遍历器生成函数和一个遍历方法。

  • keys():返回键名的遍历器。
  • values():返回键值的遍历器。
  • entries():返回所有成员的遍历器。
  • forEach():遍历 Map 的所有成员。

————————————————————————————————————————————————————————

知识拓展:

1, Map 结构的默认遍历器接口(Symbol.iterator属性)

map[Symbol.iterator] === map.entries
for (let [key, value] of map.entries()) {
  console.log(key, value);
}
// "F" "no"
// "T" "yes"

// 等同于使用map.entries()
for (let [key, value] of map) {
  console.log(key, value);

2,map的forEach方法可以接收第二个参数

const reporter = {
  report: function(key, value) {
    console.log("Key: %s, Value: %s", key, value);
  }
};

map.forEach(function(value, key, map) {
  this.report(key, value);
}, reporter);

猜你喜欢

转载自blog.csdn.net/qdmoment/article/details/82852057