JS 数组, 对象的增查改删(多语法对比)
数据结构横向对比, 增, 查, 改, 删
建议: 在用数据结构的时候, 优先考虑Map和Set(考虑数据的唯一性), 放弃传统的数组和Object, 特别是比较复杂的数据结构时
数组
Map与Array的对比
let map = new Map()
let array = []
- 增
map.set('t', 1)
array.push({
t: 1
})
console.info('map-array', map, array);
// map-array Map(1) {"t" => 1} [{t: 1}]
- 查
let map_exist = map.has('t')
let array_exist = array.find(item => item.t)
console.info('map-array', map_exist, array_exist)
// map-array true {t: 1}
- 改
map.set('t', 2)
array.forEach(item => item.t ? item.t = 2 : '')
console.info('map-array-modify', map, array);
// map-array-modify Map(1) {"t" => 2} [{t: 2}]
- 删
map.delete('t')
let index = array.findIndex(item => item.t)
array.splice(index, 1)
console.info('map-array-empty', map, array)
// map-array-empty Map(0) {} []
}
Set与Array的对比
let set = new Set()
let array = []
- 增
set.add({
t: 1
})
array.push({
t: 1
})
console.info('set-array', set, array);
// set-array Set(1) {[[Entries]]: [{t: 1}]} [{t: 1}]
- 查
let set_exsit = set.has({
t: 1
})
let array_exist = array.find(item => item.t)
console.info('set-array', set_exsit, array_exist);
// set-array false {t: 1}
- 改
set.forEach(item => item.t ? item.t = 2 : '')
array.forEach(item => item.t ? item.t = 2: '')
console.log('set-array-modify', set, array);
// set-array-modify Set(1) {[[Entries]]: [{t: 2}]} [{t: 2}]
- 删
set.forEach(item => item.t ? set.delete(item) : '');
let index = array.findIndex(item => item.t)
array.splice(index, 1)
console.log('set-array-empty', set, array);
// set-array-empty Set(0) {[[Entries]]: []} []
}
对象
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-obh', obj, map, set)
// map-set-obh {t: 1} Map(1) {"t" => 1} Set(1) {{t: 1}}
- 查
console.info({
map_exist: map.has('t'),
set_exsit: set.has(item),
obj_exsit: 't' in obj
})
// {map_exist: true, set_exsit: true, obj_exsit: true}
- 改
map.set('t', 2)
item.t = 2
obj['t'] = 2
console.info('map-set-obj-modify', map, set, obj)
// map-set-obj-modify Map(1) {"t" => 2} Set(1) {{t: 2}} {t: 2}
- 删
map.delete('t')
set.delete(item)
delete obj['t']
console.info('map-set-obj-empty', map, set, obj)
// map-set-obj-empty Map(0) {} Set(0) {} {}
JS 数组, 对象的增查改删(多语法对比)的更多相关文章
- EF里单个实体的增查改删以及主从表关联数据的各种增删 改查
本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(根据主表找从表数据.根据从表 ...
- SQL Server 2012 学习笔记3 增查改删
现在举例几个"增查改删"的语句 select * from UserInfor --查找所有字段 select username,UserId from UserInfor -- ...
- ylb:创建数据库、表,对表的增查改删语句
ylbtech-SQL Server:SQL Server-创建数据库.表,对表的增查改删语句 SQL Server 创建数据库.表,对表的增查改删语句. 1,ylb:创建数据库.表,对表的增查改删语 ...
- DOM树的增查改删总结
DOM树的增查改删总结 摘要:对HTML DOM的操作是前端JavaScript编程时必备的技能,本文是我自己对DOM树操作的总结,主要是方法的罗列,原理性的讲述较少,适合大家用于理清思路或是温习 一 ...
- mongodb 增查改删
我们在 MongoDB 之 你得知道MongoDB是个什么鬼 MongoDB - 1 中学习了如果安装部署一个 MongoDB 如果没看到我的金玉良言的话,就重新打开一次客户端和服务端吧 本章我们 ...
- MongoDB的常用命令和增查改删
数据库操作 Mongodb MySQL 查询库 show databases | show dbs show databases 选中库 use databaseName use databaseNa ...
- php 连接mongodb 增查改删操作
查询 <?php $m=new MongoClient('mongodb://admin:admin@localhost:27017/admin'); $db=$m->hndb; $cc= ...
- Django 学习笔记(七)数据库基本操作(增查改删)
一.前期准备工作,创建数据库以及数据表,详情点击<Django 学习笔记(六)MySQL配置> 1.创建一个项目 2.创建一个应用 3.更改settings.py 4.更改models.p ...
- MongoDB学习记录(四) - MongoDB的"增查改删"操作之"改"
更新文档主要有以下几种方法: db.collection.updateOne(filter, update, options) db.collection.updateMany(filter, upd ...
随机推荐
- ubuntu 构建 deb 安装包
源码包下载:http://mirrors.163.com/ubuntu/ 编译工具安装: apt-get install dpkg-dev 以openvswitch为例: wget http://mi ...
- centos7 下安装生物信息软件的问题小总结
1.安装samtools与bwa时: 缺少zlib库 下载zlib库 cd zlib/ CFLAGS="-O3 -fPIC" ./configure make make insta ...
- 深度学习调参笔记(trick)
1. Adam 学习率0.00035真香: 2. SGD + Momentum 学习率应当找到合适区间,一般远大于Adam (取1,2,5,10这类数据): 3. 提前终止,防止过拟合; 4. Ens ...
- Java程序员值得拥有的TreeMap指南
先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个有颜值却假装靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题 ...
- App 自动化,Appium 凭什么使用 UiAutomator2?
1. UiAutomator2 是什么 可能很多人对 UiAutomator2 和 UiAutomator 傻傻分不清楚 UiAutomator 是 Google 开发的一款运行在 Android 设 ...
- CF1203D2 Remove the Substring (hard version) 题解
这题初赛让我白给了6分,于是我决定回来解决一下它. 说实话,看原题题面和看CCF代码真是两种完全不同的感受…… ------------思路分析: 把$s$串删去一部分之后,会把$s$串分成两部分,当 ...
- Xposed+X5使用
1.Xposed 2.X5
- 我们真的需要JWT吗?
JWT(JSON Web Token)是目前最流行的认证方案之一.博客园.各种技术公众号隔三差五就会推一篇JWT相关的文章,真的多如牛毛.但我对JWT有点困惑,今天写出来跟大家探讨探讨,不要喷哈. J ...
- PyTorch入门-CIFAR10图像分类
CIFAR10数据集下载 CIFAR10数据集包含10个类别,图像尺寸为 3×32×32 官方下载地址很慢,这里给一个百度云: https://pan.baidu.com/s/1oTvW8wNa-VO ...
- 无法登陆网站,nginx漏配置
location / { try_files $uri $uri/ /index.php?$query_string; } 这条主要是将index.php入口文件重写掉,所以平常我 ...