当前位置: 首页 > news >正文

【前端】ES6:Set与Map

文章目录

  • 1 Set结构
    • 1.1 初识Set
    • 1.2 实例的属性和方法
    • 1.3 遍历
    • 1.4 复杂数据结构去重
  • 2 Map结构
    • 2.1 初识Map
    • 2.2 实例的属性和方法
    • 2.3 遍历

1 Set结构

它类似于数组,但成员的值都是唯一的,没有重复的值。

1.1 初识Set

let s1 = new Set([1, 2, 3, 2, 3])
console.log(s1)let s2 = new Set()
s2.add(1)
s2.add(2)
s2.add(3)
console.log(s2)

1.2 实例的属性和方法

  • size:返回Set实例的成员总数。
  • Set.prototype.add(value):添加某个value。
  • Set.prototype.delete(value):删除某个value,返回一个布尔值,表示删除是否成功。
  • Set.prototype.has(value):返回一个布尔值,表示该值是否为Set的成员。
  • Set.prototype.clear():清除所有成员,没有返回值。

1.3 遍历

  • Set.prototype.keys():返回键名的遍历器。
  • Set.prototype.values():返回键值的遍历器。
  • Set.prototype.entries():返回键值对的遍历器。
  • Set.prototype.forEach():遍历每个成员。

1.4 复杂数据结构去重

function uni(arr) {let res = new Set()return arr.filter(item => {let id = JSON.stringify(item)if (res.has(id)) {return false} else {res.add(id)return true}})
}var arr = [1, 2, 3, "data", {name: "kerwin"}, {name: "kerwin"}, [1, 2], [3, 4], [3, 4]]
console.log(uni(arr))

2 Map结构

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

2.1 初识Map

let m1 = new Map()
m1.set("name","kerwin")
m1.set({a:1},"大连")console.log(m1)let m2= new Map([["name","kerwin"],[{a:1},"大连"]
])
console.log(m2)

2.2 实例的属性和方法

  • size:返回Map结构的成员总数。
  • Map.prototype.set(key,value):添加key对应得value,返回Map结构本身。
  • Map.prototype.get(key):获取key对应的value
  • Map.prototype.delete(key):删除某个键(键名+键值)
  • Map.prototype.has(key):某个键是否在当前Map对象之中。
  • Map.prototype.clear():清除所有成员,没有返回值。

2.3 遍历

  • Map.prototype.keys():返回键名的遍历器。
  • Map.prototype.values():返回键值的遍历器。
  • Map.prototype.entries():返回所有成员的遍历器。
  • Map.prototype.forEach():遍历Map的所有成员。
http://www.lryc.cn/news/441629.html

相关文章:

  • Java 之网络编程小案例
  • Spring Boot:现代化Java应用开发的艺术
  • Redis五种基本数据结构的使用
  • 【QT】系统-下
  • java和kotlin 可以同时运行吗
  • 2024最新版 Tuxera NTFS for Mac 2023绿色版图文安装教程
  • npm发布插件超级简单版
  • C# 访问Access存取图片
  • 正则表达式中常见字符的用法介绍
  • Vue3.0组合式API:依赖注入provide和inject实现跨层组件的通信
  • VSCode中配置C/C++环境
  • vue实现鼠标滚轮控制页面横向滑动
  • 【Git使用】删除Github仓库中的指定文件/文件夹
  • Iptables命令常用命令
  • 前端开发之原型模式
  • 分布式缓存服务Redis版解析与配置方式
  • WordPress建站钩子函数及使用
  • Qt 模型视图(二):模型类QAbstractItemModel
  • 算法打卡 Day41(动态规划)-理论基础 + 斐波那契数 + 爬楼梯 + 使用最小花费爬楼梯
  • 鸿蒙环境服务端签名直传文件到OSS
  • 计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
  • solidwork剪裁实体
  • Junit与Spring Test简单使用
  • Vxe UI vue vxe-table 实现自适应列宽,根据内容自适应列的宽度
  • document.visibilityState 监听浏览器最小化
  • 前端框架对比和选择
  • Linux 进程2
  • WPF入门教学六 Grid布局进阶
  • while循环及简单案例
  • 电子看板实时监控数据可视化助力工厂精细化管理