简介:
new Map(): 在JavaScript中,new Map()用于创建一个新的 Map 对象。Map 对象是一种键值对的集合,其中的键是唯一的,值可以重复。
new Set(): 在JavaScript中, new Set() 是用来创建一个新的 Set 对象的语法。Set 对象是一种集合,其中的值是唯一的,没有重复的值。 new Set() 可以用来创建一个空的 Set 对象,在创建时传入一个数组或类数组对象,Set 会自动去除重复的值。
new Map()
一、new Map() 基本特性
new Map() 是用来创建一个新的 Map 对象的构造函数。Map 对象保存键值对,并记住键的原始插入顺序。这意味着你可以迭代 Map 对象,按键的插入顺序获取键值对。

Map 对象与普通的对象(使用字符串作为键)不同,因为 Map 可以使用任何类型作为键(包括函数、对象或任何原始值),而不仅仅是字符串或符号。

二、相关方法
1. set(key, value) : 向 Map 对象中添加一个键值对。
2. get(key) : 获取指定键对应的值。
3. has(key) : 判断 Map 对象中是否存在指定的键。
4. delete(key) : 删除指定键及其对应的值。
5. size : 返回 Map 对象中键值对的数量。
6. clear() : 清空 Map 对象中的所有键值对。
7. keys() : 返回一个包含 Map 对象中所有键的迭代器。
8. values() : 返回一个包含 Map 对象中所有值的迭代器。
9. entries() : 返回一个包含 Map 对象中所有键值对的迭代器。
三、基本使用

// 创建一个新的Map对象
let myMap = new Map(); // 1、添加键值对
myMap.set('name', 'Alice');
myMap.set('age', 25); // 2、获取值
console.log(myMap.get('name')); // 输出: "Alice" // 3、检查键是否存在
console.log(myMap.has('age')); // 输出: true // 4、删除键值对
myMap.delete('name');
console.log(myMap.has('name')); // 输出: false // 5、获取Map的大小
console.log(myMap.size); // 输出: 1 // 6、清空Map
myMap.clear();
console.log(myMap.size); // 输出: 0 // 7、遍历键
for (let key of myMap.keys()) {
console.log(key); // 输出: "age"
} // 8、遍历值
for (let value of myMap.values()) {
console.log(value); // 输出: 25
} // 9、遍历键值对
for (let [key, value] of myMap.entries()) {
console.log(`Key: ${key}, Value: ${value}`); // 输出: Key: age, Value: 25
}

new Set()
一、new Set() 基本特性
唯一性:在 Set 中,每个值只出现一次,可以实现简单的数组去重,即使是两个完全相同的对象,它们在 Set 中也只会被存储一次。
无序性:Set 中的元素没有特定的顺序。
二、相关方法
add(value): 向 Set 对象中添加一个值。如果值已存在,则不会进行任何操作。
delete(value): 从 Set 对象中删除一个值。如果值存在,则删除并返回 true;否则,返回 false。
has(value): 返回一个布尔值,表示 Set 对象中是否包含指定的值。
clear(): 清空 Set 对象,移除所有元素。
三、基本使用

let setData = new Set();  

// 添加元素
setData .add(1);
setData .add(2);
setData .add(3);
console.log(setData); // setData { 1, 2 ,3 } // 删除元素
setData.delete(2);
console.log(setData); // Set { 1, 3 } // 检查元素是否存在
console.log(setData.has(1)); // true
console.log(setData.has(4)); // false // 遍历元素
setData.forEach(value => console.log(value));
// 输出:
// 1
// 3 // 清空集合
setData.clear();
console.log(setData.size); // 输出: 0,因为集合已被清空 //在创建 Set 时直接传入一个可迭代对象(如数组),来初始化 Set:
let set = new Set([1, 2, 2, 3, 4, 4]);
//简单数组去重
console.log(set); // Set { 1, 2, 3, 4 }

JavaScript中的new map()和new set()使用详细(new map()和new set()的区别)的更多相关文章

  1. JavaScript中Function Declaration与Function Expression 或者说 function fn(){}和var fn=function(){} 的区别

    JavaScript是一种解释型语言,函数声明会在JavaScript代码加载后.执行前被解释,而函数表达式只有在执行到这一行代码时才会被解释. 在JS中有两种定义函数的方式, 1是:var aaa= ...

  2. javascript中 for循环的一些写法 for length 以及for in 还有 for of 的区别

    最近在写一些前端的代码,遇到一个产品列表遍历的问题,正好使用到for 的几种用法,于是研究了下. 代码如下,先说明下goodslist 是一个产品列表 形如这样的数据格式 { ‘types’:1, ' ...

  3. JavaScript中setInterval常见的问题(setInterval第一个参数加引号与不加引号区别)

  4. javascript中面向对象的两种构建方式(构造函数)和(原型模式的区别)

    1.构造函数模式--->alert的结果为false <!DOCTYPE html> <html lang="en"> <head> &l ...

  5. JavaScript中对象的属性

    在JavaScript中,属性决定了一个对象的状态,本文详细的研究了它们是如何工作的. 属性类型 JavaScript中有三种不同类型的属性:命名数据属性(named data properties) ...

  6. javascript中的undefined与null的区别

    一.相似性 在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别. var a = undefined; var a = null; 上面代码中,a变量分别被赋值 ...

  7. 【转】javascript中not defined、undefined、null以及NaN的区别

    原文链接(点击跳转) 第一:not defined 演示代码:   <span style="font-size:12px;"><span style=" ...

  8. ES6新特性:Javascript中的Map和WeakMap对象

    Map对象 Map对象是一种有对应 键/值 对的对象, JS的Object也是 键/值 对的对象 : ES6中Map相对于Object对象有几个区别: 1:Object对象有原型, 也就是说他有默认的 ...

  9. 由实现JavaScript中的Map想到的

    项目中要用到JavaScript中的Map数据类型,它不像JDK那样有自带的,怎么办?搜了找到一个不错的(http://darkmasky.iteye.com/blog/454749).用这个可以满足 ...

  10. JavaScript中Map和ForEach的区别

    译者按: 惯用Haskell的我更爱map. 原文: JavaScript — Map vs. ForEach - What’s the difference between Map and ForE ...

随机推荐

  1. MLP实现minist数据集分类任务

    1. 数据集 minist手写体数字数据集 2. 代码 ''' Description: Author: zhangyh Date: 2024-05-04 15:21:49 LastEditTime: ...

  2. CSS——引入方式

    1.行内式 <div style="color: white;background-color: #369;text-align: center">行内设置</d ...

  3. Android 13 - Media框架(2)- Demo App与MediaPlayer Api了解

    关注公众号免费阅读全文,进入音视频开发技术分享群! 尝试用MediaPlayer写了一个播放demo,实现了网络流和本地流的播放.由于本人对app开发一窍不通,所以demo中很多内容是边查资料边写的, ...

  4. UILable在Autolayout模式下面自动调节字体大小

    一.需求 固定UILabel的宽度大小在一定范围,内容能够自动伸缩 二.实施 首先加好约束: 约束加好之后,需要设置好Autoshrink属性,包括Line break.BaseLine.以及缩小字体 ...

  5. RHCSA认证学习_尝试

    第一天 一,linux系统的基本概念以及命令终端字段含义介绍 linux系统的基本概念: ·多用户的系统:允许同时执行多个任务 ·多任务的系统:允许同时执行多个任务 ·严格区分大小写:命令,选项,参数 ...

  6. react 网络请求 axios

    react中通过npm来安装axios扩展 cnpm i -S axios 发起请求 import React, { Component } from 'react' import axios fro ...

  7. 使用 nsenter 排查容器网络问题

    需求 我想进入容器中执行 curl 命令探测某个地址的连通性,但是容器镜像里默认没有 curl 命令.我这里是一个内网环境不太方便使用 yum 或者 apt 安装,怎么办? 这个需求比较典型,这里教大 ...

  8. Java 获取当前时间的年、月、日、小时、分钟、秒数

    public static void getDateTime() throws ParseException{ Calendar now = Calendar.getInstance(); Syste ...

  9. java和javac编译和运行记事本编写的代码

    演示代码如下: package com.springboot.demo; public class Hello { public static void main(String[] args) { S ...

  10. http请求方式-CloseableHttpClient

    http请求方式-CloseableHttpClient import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObjec ...