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 ...
随机推荐
- 【TensorFlow入门完全指南】模型篇·线性回归模型
首先呢,进行import,对于日常写代码来说,第二行经常写成:import numpy as np,这样会更加简洁.第三行import用于绘图. 定义了学习率.迭代数epoch,以及展示的学习步骤,三 ...
- Spring 和 Mybatis 整合
Spring 和 Mybatis 整合 Spring本身的Config文件: 在IDEA下面配置好文件后, 在WEB-INF下面有三个配置文件分别是web.xml, applicationContex ...
- Codeforces Round #319 (Div. 2) C Vasya and Petya's Game (数论)
因为所有整数都能被唯一分解,p1^a1*p2^a2*...*pi^ai,而一次询问的数可以分解为p1^a1k*p2^a2k*...*pi^aik,这次询问会把所有a1>=a1k &&am ...
- 禁止MySQL开机自动启动的方法
这几天发现电脑卡机变慢了,还有一些卡,发现每次开机MySQL都会自动启动(明明我安装的时候选择了不开机自启,任务管理器启动列表中也没有,但就是自启了...) 1.打开服务列表 有两种方法,一是快捷键 ...
- MySQL基础教程——mysql脚本编写
SQL,结构化查询语言,既是对数据库进行操作的语言,也是数据库脚本文件的扩展名. 要求:新建一个名为 library 的数据库,包含 book.reader 两张表,根据自己的理解安排表的内容并插入数 ...
- fence_vmware_soap UnicodeEncodeError
执行如下命令 fence_vmware_soap -z -l administrator@vsphere.local -p 2wsx@QAZ -a 10.0.2.200 -o list --ssl-i ...
- 解决在matplotlib使用中文的问题
原生的matplotlib并不支持直接使用中文,而需要修改一下相应的文件,上网搜了下,找到一个最简洁的办法. NO.1 找到matplotlibrc文件 C:\Python26\Lib\site-pa ...
- Mybatis学习记录(2)
1.mybatis与hibernate不同 Mybatis和hibernate,mybatis不完全是一个ORM框架,因为Mybatis需要程序员自己编写sql语句.mybatis可以通过xml或注解 ...
- NIOP 膜你题
NOIp膜你题 Day1 duliu 出题人:ZAY 1.大美江湖(mzq.cpp/c) [题目背景] 细雪飘落长街,枫叶红透又一年不只为故友流连,其实我也恋长安听门外足音慢,依稀见旧时容颜 ...
- HTML5中Web存储
HTML5 中web存储是一个比cookies更好的一个本地存储方式. 那么什么是HTML5存储呢? 使用HTML5可以在本地存储用户浏览的数据,HTML5技术没有出来之前是使用cookies进行本地 ...