首页 > 其他分享 >js Map 基本API

js Map 基本API

时间:2024-01-14 16:03:34浏览次数:29  
标签:Map 映射 firstName alert API new js size

使用 new 关键字和 Map 构造函数可以创建一个空映射: const m = new Map(); 如果想在创建的同时初始化实例,可以给 Map 构造函数传入一个可迭代对象,需要包含键/值对数 组。可迭代对象中的每个键/值对都会按照迭代顺序插入到新映射实例中:

// 使用嵌套数组初始化映射 const m1 = new Map([
      ["key1", "val1"],
      ["key2", "val2"],
      ["key3", "val3"]
    ]);
    alert(m1.size); // 3
// 使用自定义迭代器初始化映射 const m2 = new Map({
      [Symbol.iterator]: function*() {
        yield ["key1", "val1"];
        yield ["key2", "val2"];
        yield ["key3", "val3"];
} });
    alert(m2.size); // 3
// 映射期待的键/值对,无论是否提供
const m3 = new Map([[]]); alert(m3.has(undefined)); // true alert(m3.get(undefined)); // undefined

初始化之后,可以使用 set()方法再添加键/值对。另外,可以使用 get()和 has()进行查询,可 以通过 size 属性获取映射中的键/值对的数量,还可以使用 delete()和 clear()删除值。

const m = new Map();
    alert(m.has("firstName"));  // false
    alert(m.get("firstName"));  // undefined
    alert(m.size);              // 0
    m.set("firstName", "Matt")
     .set("lastName", "Frisbie");
    alert(m.has("firstName")); // true
    alert(m.get("firstName")); // Matt
    alert(m.size);             // 2
m.delete("firstName"); // 只删除这一个键/值对
    alert(m.has("firstName")); // false
    alert(m.has("lastName"));  // true
    alert(m.size);             // 1
m.clear(); // 清除这个映射实例中的所有键/值对
    alert(m.has("firstName")); // false
    alert(m.has("lastName"));  // false
    alert(m.size);             // 0

set()方法返回映射实例,因此可以把多个操作连缀起来,包括初始化声明:

const m = new Map().set("key1", "val1");
    m.set("key2", "val2")
     .set("key3", "val3");
    alert(m.size); // 3

与 Object 只能使用数值、字符串或符号作为键不同,Map 可以使用任何 JavaScript 数据类型作为 键。Map 内部使用 SameValueZero 比较操作(ECMAScript 规范内部定义,语言中不能使用),基本上相 当于使用严格对象相等的标准来检查键的匹配性。与 Object 类似,映射的值是没有限制的。

标签:Map,映射,firstName,alert,API,new,js,size
From: https://blog.51cto.com/u_16255561/9240842

相关文章

  • js Map函数
    定型数组中值的下溢和上溢不会影响到其他索引,但仍然需要考虑数组的元素应该是什么类型。定型数组对于可以存储的每个索引只接受一个相关位,而不考虑它们对实际数值的影响。以下代码演示了如何处理下溢和上溢://长度为2的有符号整数数组//每个索引保存一个二补数形式的有符号......
  • js 合并、复制和修改定型数组
    定型数组同样使用数组缓冲来存储数据,而数组缓冲无法调整大小。因此,下列方法不适用于定型数组:concat()pop()push()shift()splice()unshift()不过,定型数组也提供了两个新方法,可以快速向外或向内复制数据:set()和subarray()。set()从提供的数组或定型数组中把值复制到当前定型数组......
  • js 定型数组行为
    //创建一个长度为6的Int32Arrayconstints2=newInt32Array(6);//每个数值使用4字节,因此ArrayBuffer是24字节alert(ints2.length);//6//类似DataView,定型数组也有一个指向关联缓冲的引用alert(ints2.buffer.byteLength);//24//创建一个包含[2,4,6,8]的Int......
  • js边界情形
    //在内存中分配两个字节并声明一个DataViewconstbuf=newArrayBuffer(2);constview=newDataView(buf);//填充缓冲,让第一位和最后一位都是1view.setUint8(0,0x80);//设置最左边的位等于1view.setUint8(1,0x01);//设置最右边的位等于1//缓冲内容(为方便阅读,人......
  • F1 score 与 平均精度 mAP
    F1score与平均精度mAP可以衡量分类模型的性能。首先先看精确率与召回率的概念。精确率与召回率对于某方概率极低的逻辑回归(例如某种罕见病症的确诊),单纯的准度(是否能正确判断病人是否得病)并不足够。毕竟,若算法只会给出negative的判断也能拥有高准度。真阳性(TP),假阳性(FP),真......
  • Json Schema介绍 和 .net 下的实践 - 基于Lateapexearlyspeed.Json.Schema - 基础1 -
    本系列旨在介绍JsonSchema的常见用法,以及.net实现库Lateapexearlyspeed.Json.Schema的使用这篇文章将介绍JsonSchema中的type关键字,和string类型的常见验证功能。用例基于.net的LateApexEarlySpeed.Json.Schemanugetpackage。这是新创建的一个JsonSchema在.net下的高性能......
  • C#调用webapi发送带json参数的post请求
    嗯。。很久不更新,因为跳槽新公司了,要学的东西太多太忙了。也没时间记录,今天又写了一个C#调用webapi发送带json参数的post请求拿数据的方法,所以来到这里记录一下///<paramname="url">请求地址</param>///<paramname="jsonParas">请求体</param>///<paramnam......
  • C#将从数据库查处的table格式的数据转为json
    这里的代码是封装好的类,将Datatable作为参数传进来即可解析出json格式的数据,看代码publicstaticstringToJson(DataTabledt){intcount=dt.Rows.Count;//将DataTable格式的数据转换成json格式StringBuilderjsonBuilder=ne......
  • API架构风格
    浅谈6种流行的API架构风格前言API在现代软件开发中扮演着重要的角色,它们是不同应用程序之间的桥梁。编写业务API是日常开发工作中最常见的一部分,选择合适的API框架对项目的成功起到了至关重要的作用。本篇文章将浅谈一下当前6种流行的API架构风格的优点、缺点以及适用场景。6......
  • Go 语言为什么不支持并发读写 map?
    大家好,我是frank,「Golang语言开发栈」公众号作者。01介绍在Go语言项目开发中,我们经常会使用哈希表map,它的时间复杂度是O(1),Go语言中的map使用开放寻址法避免哈希碰撞。Go语言中的map并非原子操作,不支持并发读写操作。Go官方认为map在大多数情况下是使用map......