转载自: https://www.cnblogs.com/hui-fly/p/9459152.html

https://blog.csdn.net/roamingcode/article/details/81975913

set

function Set (arr) {
let item = {};
this.size = 0;
if (arr) {
for (let i of arr) {
item[i] = i;
}
this.size = arr.length;
} this.has = function (val) {
return item.hasOwnProperty(val);
}
this.add = function (val) {
if (!this.has(val)) {
item[val] = val;
this.size ++;
}
}
this.delete = function (val) {
if (this.has(val)) {
delete item[val];
this.size --;
}
}
this.clear = function () {
item = {};
this.size = 0;
}
this.values = function () {
return Object.values(item);
}
} let set = new Set([1, 2, 3]);
console.log(set.has(3)); // true
console.log(set.has(4)); // false
set.add(0);
console.log(set.has(0)); // true
console.log(set.size); //
set.delete(3);
console.log(set.has(3)); // false
console.log(set.size); //
console.log(set.values()); // [0,1,2]

map

class Map {
constructor (arr = []) {
this.items = {};
this.size = 0;
arr.forEach(arr_item => {
this.set(arr_item[0], arr_item[1]);
})
}
has (val) {
return this.items.hasOwnProperty(val);
}
set (key, val) {
if (!this.has(key)) {
this.size ++;
}
this.items[key] = val;
}
get (key) {
return this.has(key)? this.items[key]: undefined;
}
delete (key) {
if (this.items.has(key)) {
delete this.items[key];
this.size --;
return true;
} else {
return false;
}
}
clear () {
this.items = {};
this.size = 0;
}
keys () {
return Object.keys(this.items);
}
values () {
return Object.values(this.items);
}
} let map = new Map([['name', 'alice'], ['age', 19]]);
console.log(map.has('age')); // true
console.log(map.get('age')); //
map.set('address', 'bupt');
map.set('age', 20);
console.log(map.size); // 3
console.log(map.keys()); // [ 'name', 'age', 'address' ]
console.log(map.values()); // [ 'alice', 20, 'bupt' ]

实现es6中的set和map的更多相关文章

  1. ES6中的Set和Map集合

    前面的话 在ES6标准制定以前,由于可选的集合类型有限,数组使用的又是数值型索引,因而经常被用于创建队列和栈.如果需要使用非数值型索引,就会用非数组对象创建所需的数据结构,而这就是Set集合与Map集 ...

  2. ES6 中的 Set、Map 和 WeakMap

    Set 是 ES6 新增的有序列表集合,它不会包含重复项. Set 支持 add(item) 方法,用来向 Set 添加任意类型的元素,如果已经添加过则自动忽略: has(item) 方法用来检测 S ...

  3. ES6中的Set、Map数据结构

    Map.Set都是ES6新的数据结构,他们都是新的内置构造函数.也就是说typeof的结果,多了两个. 他们是什么:  Set是不能重复的数组.    Map是可以任何东西当做键的对象: ES6 提供 ...

  4. ES6中的Set与Map数据结构

    本文实例讲述了ES6学习笔记之Set和Map数据结构.分享给大家供大家参考,具体如下: 一.Set ES6提供了新的数据结构Set.类似于数组,只不过其成员值都是唯一的,没有重复的值. Set本身是一 ...

  5. es6中的Set和Map

    Set: (1)set的key是number类型,从0开始 (2)向 Set 加入值的时候,不会发生类型转换,5和"5"是两个不同的值 (3)当向Set add相同的值时,会去掉重 ...

  6. ES6中的Set和Map对象数据结构

    set对象数据结构 构建某一类型的对象 -对象的实例化 let arr = [1, 2, 3, 3, 4, 5] let rec = new Set(arr)//可以传参数,数组或者对象 consol ...

  7. ES6 中的 Map和Set

    集合的概念以及和数组的区别 其实数组也是集合, 只不过数组的索引是数值类型.当想用非数值类型作为索引时, 数组就无法满足需要了. 而 Map 集合可以保存多个键-值对(key-value), Set ...

  8. ES6中map和set用法

    ES6中map和set用法 --转载自廖雪峰的官方网站 一.map Map是一组键值对的结构,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Arra ...

  9. ES6中的Map集合(与java里类似)

    Set类型可以用来处理列表中的值,但是不适用于处理键值对这样的信息结构.ES6也添加了Map集合来解决类似的问题 一.Map集合 JS的对象(Object),本质上是键值对的集合(Hash结构),但是 ...

随机推荐

  1. SQLCommand 相关应用

    SQL command 对象:执行指定数据库中相应的操作 (执行相应的SQL语句)string str1 = "select * from tb_student "Create: ...

  2. 开发AI+诊疗生发系统,「先锋汇美」借力人工智能辅助诊疗实现头皮医学检测...

    困扰年轻人的脱发问题萌生了新兴的产业链.36氪先前曾剖析过近来火热的植发市场,更多人则选择"防范于未然","头皮检测"服务备受关注.此前,人们对"头皮 ...

  3. BootStrap的栅格式布局

    1.栅格系统(布局) Bootstrap内置了一套响应式.移动设备优先的流式栅格系统,随着屏幕设备或视口(viewport)尺寸的增加,系统会自动分为最多12列. 我在这里是把Bootstrap中的栅 ...

  4. bootstrap-分页-默认分页

    说明 默认分页 示例 <!DOCTYPE html> <html lang="zh-CN">    <head>      <meta c ...

  5. 【ElasticSearch学习】之一图读懂文档索引全过程

    ES索引过程详解: 1.客户端发送索引请求. 客户端向ES节点发送索引请求,以RestClient客户端发起请求为例: ES提供了Java High Level REST Client,用户可以通过R ...

  6. 3DMAX导出到Unity坐标轴转换问题

      这是我在3dmax中创建的1cm*1cm*1cm的立方体,右图为3dmax中的坐标系 当我们把这个立方体导入到unity中发现x轴意外的扭转了90度 为了解决这个问题,你需要对模型做出修正 1.选 ...

  7. nodejs操作MySQL,mysql连接池及事务的使用

    https://blog.csdn.net/jasnet_u/article/details/88605168

  8. HR问了一句DB是啥?SQL是啥?DB是Database数据库,SQL是数据库语言! 然后呢? 数据库从入门到精通--入门必看!

    写在前面 本文的写作知识体系来源于我的数据库老师SDAU张承明,部分知识来自于网络,我呢对知识进行了细化和添加了自己的一些看法,并且加入了一些实例帮助理解,本文不是面向SQL高手写的,可以看作是数据库 ...

  9. javaweb系统调优方案

    1. java代码优化 java代码优化6大原则 : https://blog.csdn.net/bunny1024/article/details/72803708 java代码优化: https: ...

  10. 从入门到精通(分布式文件系统架构)-FastDFS,FastDFS-Nginx整合,合并存储,存储缩略图,图片压缩,Java客户端

    导读 互联网环境中的文件如何存储? 不能存本地应用服务器 NFS(采用mount挂载) HDFS(适合大文件) FastDFS(强力推荐