map/set/object/array对比
map () {
//数据结构横向对比, 增,查,改,删
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)
//改
map.set('t',2)
array.forEach(item => item.t?item.t=2:'')
console.info('map-array-modefy',map,array)
//删
map.delete('t')
let index = array.findIndex(item=>item.t)
array.splice(index,1)
console.info('map-array',map,array)
},
set () {
let set = new Set()
let array = []
//增
let obj = {t:1}
set.add(obj)
array.push(obj)
console.log('set-array',set,array)
//查
let set_exist = set.has(obj)
let array_exist = array.find(item=>item.t)
console.info('set-array',set_exist,array_exist)
//改
set.forEach(item => item.t?item.t=2:'')
array.forEach(item => item.t?item.t=2:'')
console.log('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('set-array',set,array)
},
test () {
//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.log('map-set-obj',map,set,obj)
//查
console.log({
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.log('map-set-obj',map,set,obj)
//删
map.delete('t')
set.delete(item)
delete obj['t']
console.log('map-set-obj',map,set,obj)
}
map/set/object/array对比的更多相关文章
- 通过增删改查对比Array,Map,Set,Object的使用成本和实现方式
1.Array 和 Map 对比 { // array and map 增 查 改 删 let map = new Map(); let arr = []; // 增 map.set('a', 1); ...
- String, JSONArray , JSONObject ,Map<String, Object> 与对象
String pic = "[{\"picServiceUrl\": \"0f4bb44afb2e48d48b786d3bbdeec283/20180408/6 ...
- 再谈js对象数据结构底层实现原理-object array map set
如果有java基础的同学,可以回顾下<再谈Java数据结构—分析底层实现与应用注意事项>:java把内存分两种:一种是栈内存,另一种是堆内存.基本类型(即int,short,long,by ...
- new Map()详细介绍与对比
说明: Map结构提供了“值—值”的对应,是一种更完善的Hash结构实现.如果你需要“键值对”的数据结构,Map比Object更合适.它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串, ...
- List<Map<String, Object>> 与 json 互转
近期做指纹识别,需要用到缓存文件,数据量并不大,用redis不合适,所以用到了txt文件. 思路是 1.定时查询指纹,存到txt缓存文件中. 2.新增或删除指纹时,查询指纹,存到txt缓存文 ...
- 分页查询和分页缓存查询,List<Map<String, Object>>遍历和Map遍历
分页查询 String sql = "返回所有符合条件记录的待分页SQL语句"; int start = (page - 1) * limit + 1; int end = pag ...
- 使用 JDBC 和 JavaTemplate 查询SQL语句返回 List<Map<String,Object>>
使用JDBC执行sql语句返回List 类型: public class JdbcUtil { private static Log log = LogFactory.getLog(JdbcUtil. ...
- JS 深度拷贝 Object Array
JS 深度拷贝 Object Array function cloneObj(o) { var isArray = o instanceof Array; var isObject = o insta ...
- List<Map<String,Object>>使用Java代码遍历
List<Map<String,Object>>的结果集怎么使用Java代码遍历以获取String,Object的值: package excel; import java.u ...
随机推荐
- python基础教程总结15——7 自定义电子公告板
1. Python进行SQLite数据库操作 简单的介绍 SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身.它是遵守ACID的关联式数据库 ...
- 【UML】活动图Activity diagram(转)
前言 在UML状态图的总结中说道,活动图和状态图是紧密相关的.它与流程图也有很多相似的地方. 定义 活动图是状态图的一种特殊形式.其中所有或多数状态都是活动状态,而且所有或多数转移都在源状态中的活动完 ...
- IDE spec for registry settings
IDE spec for registry settings Advanced customization of Visual Assist is possible with registry set ...
- Codevs1082 线段树练习 3
题目描述 Description 给你N个数,有两种操作: 1:给区间[a,b]的所有数增加X 2:询问区间[a,b]的数的和. 输入描述 Input Description 第一行一个正整数n,接下 ...
- B. Anatoly and Cockroaches
B. Anatoly and Cockroaches time limit per test 1 second memory limit per test 256 megabytes input st ...
- GIMP如何制作一只大佬猫头像
新建文件File -> 设置宽度为24px,高度5px:高级选项中将背景图片设置为无色 使用铅笔,前景色设为黑色,画出眼镜的模样,画出反光效果:将前景色设为灰色 放大图片,右击空白区域-> ...
- java实现可安装的exe程序
java实现可安装的exe程序 通过编写Java代码,实现可安装的exe文件的一般思路: 1.在eclipse中创建java项目,然后编写Java代码,将编写好的Java项目导出一个.jar格式的ja ...
- pyecharts用法,本人亲测,陆续更新
主题 除了默认的白色底色和dark之外,还支持安装扩展包 pip install echarts-themes-pypkg echarts-themes-pypkg 提供了 vintage, maca ...
- Django之cookie、session
会话跟踪技术 可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应. 一次会话过程中,我们应该注意的是什么呢? 那就是,一些操作要保证用户操作的是用户自己个人的数据.举个 ...
- 线段树:HDU2795-Billboard(建树方式比较新奇)
Billboard Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...