高级编程JavaScript中的Map键值对你知道吗?一篇文章看懂

这篇具有很好参考价值的文章主要介绍了高级编程JavaScript中的Map键值对你知道吗?一篇文章看懂。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Map 保存键值对,其中键可以是任何数据类型。

Map 会记住键的原始插入顺序。

Map 提供表示映射大小的属性。

Map 方法

方法 描述
new Map() 创建新的 Map 对象。
set() 为 Map 中的键设置值。
get() 获取 Map 对象中键的值。
clear() 从 Map 中移除所有元素。
delete() 删除由某个键指定的 Map 元素。
has() 如果键存在于 Map 中,则返回 true。
forEach() 为 Map 中的每个键/值对调用回调函数。
entries() 返回迭代器对象,其中包含 Map 中的 [key, value] 键值对。
keys() 返回迭代器对象,其中包含 Map 中的键。
values() 返回迭代器对象,其中包含 Map 中的值。
属性 描述
size 返回 Map 元素的数量。

如何创建 Map

您可以通过以下方式创建 JavaScript 映射:

  • 将数组传递给 new Map()
  • 创建映射并使用 Map.set()

new Map()

您可以通过将数组传递给 new Map() 构造函数来创建 Map:

// 创建一个 Map
const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);

您也可以使用 set() 方法将元素添加到 Map 中:

// 创建一个 Map
const fruits = new Map();

// 设置 Map 的值
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);

set() 方法还可用于更改现有的 Map 值:

fruits.set("apples", 500);

Map.get()

get() 方法获取 Map 中键的值:

fruits.get("apples");    // 返回 500

Map.size

size 属性返回 Map 中元素的数量:

fruits.size;

Map.clear()

clear() 方法从 Map 中删除所有元素:

fruits.clear();

如果 Map 中存在键,则 has() 方法返回 true:

fruits.has("apples");

请试试这个:

fruits.delete("apples");
fruits.has("apples");

typeof 返回 object:

// 返回 object:

typeof fruits;

instanceof Map 返回 true:

// 返回 true:
fruits instanceof Map;

JavaScript Object 对比 Map

Object(对象) Map(映射)
不可直接迭代 可直接迭代
无 size 属性 有 size 属性
键必须是字符串(或符号) 键可以是任何数据类型
键不排序 键按插入排序
有默认键 没有默认键

 

Map.forEach()

forEach() 方法为 Map 中的每个键/值对调用回调:

// 列出所有条目
let text = "";
fruits.forEach (function(value, key) {
  text += key + ' = ' + value;
})

Map.entries()

entries() 方法返回一个带有 Map 中 [key,values] 的迭代器对象:

// 列出所有条目
let text = "";
for (const x of fruits.entries()) {
  text += x;
}

Map.keys()

keys() 方法返回一个迭代器对象,其中包含 Map 中的键:

// 列出所有键
let text = "";
for (const x of fruits.keys()) {
  text += x;
}

values() 方法返回一个迭代器对象,其中包含 Map 中的值:

// 列出所有值
let text = "";
for (const x of fruits.values()) {
  text += x;
}

您可以使用 values() 方法对 Map 中的值求和:

// 对所有值求和
let total = 0;
for (const x of fruits.values()) {
  total += x;
}

将对象用作键

能够将对象用作键是 Map 的一项重要特性。

// 创建对象
const apples = {name: 'Apples'};
const bananas = {name: 'Bananas'};
const oranges = {name: 'Oranges'};

// 创建 Map
const fruits = new Map();

// Add new Elements to the Map
fruits.set(apples, 500);
fruits.set(bananas, 300);
fruits.set(oranges, 200);

请记住:键是对象(apples),而不是字符串(“apples”):文章来源地址https://www.toymoban.com/news/detail-823943.html

fruits.get("apples");  // 返回 undefined

到了这里,关于高级编程JavaScript中的Map键值对你知道吗?一篇文章看懂的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spark【RDD编程(三)键值对RDD】

            键值对 RDD 就是每个RDD的元素都是 (key,value)类型的键值对,是一种常见的 RDD,可以应用于很多场景。                 因为毕竟通过我们之前Hadoop的学习中,我们就可以看到对数据的处理,基本都是以键值对的形式进行统一批处理的,因为MapReduce模型中

    2024年02月09日
    浏览(50)
  • Vue 循环map对象拿到key值和value值,VUE 获取对象{}的key值,vue根据对象id删除数组中的对象,实现局部刷新的功能,vue中JS 对象动态添加键值对

    适用场景: vue中定义的map对象 map : { name : \\\'xxx\\\' } 接口回显map格式的数据 data :{ key : value} 都可以通过以下方式拿到key和value的值 VUE 获取对象{}的key值  vue根据对象id删除数组中的对象,实现局部刷新的功能 方法一:使用过滤器 注:这个一般是根据对象id 方法二:使用splice() 注

    2024年02月08日
    浏览(54)
  • 【高阶数据结构】map和set的介绍和使用 {关联式容器;键值对;map和set;multimap和multiset;OJ练习}

    关联式容器和序列式容器是C++ STL中的两种不同类型的容器。 关联式容器是基于键值对的容器 ,其中每个元素都有一个唯一的键值,可以通过键值来访问元素。关联式容器包括set、multiset、map和multimap。 序列式容器是基于元素序列的容器 ,其中元素按照一定的顺序排列,可以

    2024年02月11日
    浏览(40)
  • javaScript中对象使用遍历渲染键值对取值,Vue的{{}}中写方法获取值。

     类似于这样的数据有若干条,我们希望展示的方式为 我的朋友:         陪我同眠的床伴【熊猫:花花,狗熊:阿壮】 此时在代码中的应该如果来写? {{ item[Object.keys(item)[0]] }} 会显示数组元素的值,而 (Object.keys(item)[0]) 会显示数组元素的键。 i tem[Object.keys(item)[0]]会根

    2024年01月17日
    浏览(34)
  • 【Redis】Redis 哈希 Hash 键值对集合操作 ( 哈希 Hash 键值对集合简介 | 查询操作 | 增加操作 | 修改操作 )

    Redis 中的 Hash 数据 是一个 键值对集合 , 类似于 Java 中的 Map 集合 ; Hash 数据底层数据结构是 : 压缩列表 ZipList : Hash 中的 键值对 长度较短时 使用 压缩列表 ; 哈希表 HashTable : Hash 中的 键值对 长度较长时 使用 哈希表 ; Redis 中存储对象的方式 : 存储序列化之后的数据 : 将 对象

    2024年02月15日
    浏览(44)
  • python中Dict 字典类型(键值对)

    字典也是用于存储一组或者多组数据时使用 字典是 键值对 的存储方式 name : admin 键和值之间使用 冒号分隔 键必须是字符串或者数字类型,键可以是任意类型 键名不能重复,值可以重复 比如需要记录一本树相关数据 书名,作者,价格… vard = [{‘title’:’鬼谷子’,‘author’:‘鬼

    2023年04月09日
    浏览(43)
  • redis键值对映射关系存储-Dict

    Redis是一个键值型(Key-Value Pair)的数据库,可以根据键实现快速的增删改查。而 键与值的映射关系正是通过Dict来实现的 。 Dict由三部分组成,分别是: 哈希表(DictHashTable) 、 哈希节点(DictEntry) 、 字典(Dict) 哈希表: 哈希节点: size大小只能是 2^n sizemark一定要是 2^

    2024年02月09日
    浏览(39)
  • Java键值对Pair的使用方式和操作流程

    目录 一、什么是键值对 二、Java的Pair 三、Pair 的使用场景   键值对是一种常见的数据结构,它由一个唯一的键(key)和与之关联的值(value)组成 。键和值之间存在一种映射关系,通过键可以查找或访问对应的值。 在键值对中,键通常用于唯一标识和区分不同的数据项,而

    2024年02月07日
    浏览(46)
  • Python中删除字典中键值对的方法

    方法一:dic.pop(\\\'key\\\', 默认值) 1、字典的pop方法可以将字典键所对应的值给删除掉,但因为字典中键和值是映射关系,该键所对应的值被删除了,则该键也会从字典中移除。 2、pop方法会返回被移除键对应的值。 3、若pop方法想移除的键不存在,则返回默认值。 方法二:使用P

    2023年04月09日
    浏览(43)
  • Python 遍历结构复杂的多层嵌套字典,收集特定键值对

    可以使用递归函数来遍历整个嵌套层次不同的字典,收集所有感兴趣的键值对,最终得到一个非嵌套结构的字典: (一般用于处理爬取的json数据,因为有些结构真的蛮怪的(メ3[____]

    2024年02月19日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包