es6(10)--Set,Map(2)
//Map与Array的对比
{
let map=new Map();
let array=[];
//增
map.set('t',1);
array.push({t:1});
console.info('map-Array',map,array);
//查
let map_exist=map.has('t');
let array_exist=array.find(item=>item.t);
console.info('map-Array',map_exist,array_exist);//true,{'t':1}
//改
map.set('t',2);
array.forEach(item=>item.t?item.t=2:'')
console.info('map-Array',map,array);
//删
map.delete('t');
let index =array.findIndex(item=>item.t);
array.splice(index,1);
console.info('map-Array',map,array);
}
//Set与Array的对比
{
let set = new Set();
let array=[];
//增
set.add({t:1});
array.push({t:1});
console.info('set-Array',set,array);
//查
let set_exist=set.has({t:1});
let array_exist=array.find(item=>item.t);
console.info('set-Array',set_exist,array_exist);//false,{'t':1}
//改
set.forEach(item=>item.t?item.t=2:'')
array.forEach(item=>item.t?item.t=2:'')
console.info('set-Array',set,array);
//删
set.forEach(item=>item.t?set.delete(item):'')
let index =array.findIndex(item=>item.t);
array.splice(index,1);
console.info('map-Array',set,array);
}
//Map和Set与Object的对比
{
let item={t:1};
let map = new Map();
let set = new Set();
let obj={}; //增
map.set('t',1);
set.add(item);
obj['t']=1; console.info('map-set-obj',obj,map,set); //查
console.info({
map_exist:map.has('t'),
set_exist:set.has(item),
obj_exist:'t' in obj
}) //改
map.set('t',2);
item.t=2;
obj['t']=2;
console.info(obj,map,set);
//删除
map.delete('t');
set.delete(item);
delete obj['t'];
console.info(obj,map,set) }
//开发过程中数据结构,使用map,如果考虑数据结构的唯一性用set
es6(10)--Set,Map(2)的更多相关文章
- es6(10)--Set,Map(1)
//Set { let list=new Set(); list.add(5);//添加 list.add(7); //属性size就是长度 console.log('size',list.size) ...
- ES6学习:Map结构的目的和基本用法
Map结构的目的和基本用法 JavaScript的对象(Object)本质上是键值对的集合(Hash结构),但是只能用字符串作为键.这给它的使用带来了很大的限制. 1 2 3 4 5 6 7 8 ...
- ES6 Set和Map
一.Set遍历方法: set.key() set.values() set.entries() 二.Set例子: var s = new Set(); var arr = [1,1,2,3,6,8,8 ...
- ES6 Set 和 Map
ES5 模拟Set 与 Map 集合 Set 常用于检查对象中是否存在某个键名 Map集合常被用于获取已存的信息 所有对象的属性名必须是字符串,那么必须确保每个键名都是字符串类型且在对象中是唯一的 数 ...
- ES6 中的 Map和Set
集合的概念以及和数组的区别 其实数组也是集合, 只不过数组的索引是数值类型.当想用非数值类型作为索引时, 数组就无法满足需要了. 而 Map 集合可以保存多个键-值对(key-value), Set ...
- js ES6 Set和Map数据结构详解
这篇文章主要介绍了ES6学习笔记之Set和Map数据结构,结合实例形式详细分析了ECMAScript中基本数据结构Set和Map的常用属性与方法的功能.用法及相关注意事项,需要的朋友可以参考下 本 ...
- es6 Set 和Map 数据结构
ES6提供了新的数据结构Set,它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个数据结构,用来生成Set 数据结构. const s = new Set(); [2,3,5,4 ...
- ES6中的Map集合(与java里类似)
Set类型可以用来处理列表中的值,但是不适用于处理键值对这样的信息结构.ES6也添加了Map集合来解决类似的问题 一.Map集合 JS的对象(Object),本质上是键值对的集合(Hash结构),但是 ...
- ES6新增的Map和WeakMap 又是什么玩意?非常详细的解释
上一篇文章讲了set和weakSet,这节咱就讲Map和weakMap是什么?这两篇文章并没有什么联系,主要知识用法类似而已.嘿嘿,是不是感觉舒服多了. 什么是Map 介绍什么是Map,就不得不说起O ...
随机推荐
- webpack 提取 manifest 文件
当 webpack 生成 bundle 时, 它同时维护一个 manifest 文件.你可以在生成的 vendor bundle 中找到它.manifest 文件描述了哪些文件需要 webpack 加 ...
- yum和编译两种方式升级or降级Centos内核
http://blog.51cto.com/renzhiyuan/1882599 今天探讨用yum和编译两种方式升级或者降级内核版本: 升级:比如玩kvm,docker等虚拟化,centos内核则升级 ...
- centos7 docker私有仓库搭建
习Docker的过程中Docker的私有仓库一直没能成功,就是因为CentOS 6.x和CentOS 7默认引入了支持https认证,每次在push和pull的时候都会报错,今天是周末,利用一天的时间 ...
- KNN手写实践:Python基于数据集整体计算以及排序
1. 距离计算,不要通过遍历每个样本来计算和指定样本距离,而是通过对于指定样本进行广播(复制)成为一个shape和全局一致后,再进行整体计算,这里的广播 / 复制采用的是tile函数来实现的: 2. ...
- Go 定时器timer和ticker
两种类型的定时器:ticker和timer.两者有什么区别呢?请看如下代码: ticker package main import ( "fmt" "time" ...
- java IO流(二)
一.字符编码 char计算机存储的都是二进制数据,其实就是一个一个的数值字符要存储,就必须让这个字符对应一个数 将一个字符转成数字,这个过程就叫编码,反过来将一个数字转成字符就叫解码 中国大陆 (GB ...
- git 克隆指定分支
git clone -b v2.8.1 https://git.oschina.net/oschina/android-app.git
- ubuntu-docker入门到放弃(六)数据管理
在docker的数据管理中,有两个概念: 1.数据卷 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性: 1.1 数据卷可以在容器之间共享和重用 1.2 对数据卷的修改会立刻 ...
- selenium python选取下拉框中的值
https://stackoverflow.com/questions/47689936/unable-to-scroll-and-select-desired-year-from-calender- ...
- java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/JPEGCodec 解决方案
使用java生成图片的时候,报了java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/JPEGCodec 错误. 根据这个类的api说明,在 ...