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 ...
随机推荐
- Windows 右键 照片查看器 不见了--解决办法
桌面新建 一个文本文档,将下边复制进去,另存为命名例如为:1.reg 双击运行1.reg,点‘是’,点确认即可. Windows Registry Editor Version 5.00 ; Chan ...
- html中datalist 是什么??????
<datalist>标签定义选项列表,与input元素配合使用该元素,来定义input可能值.datdallist及其选项不会被显示出来,它仅仅是合法的输入值列表. <input i ...
- JavaScript学习系列博客_31_JavaScript Math 工具类
Math - Math属于一个工具类,它不需要我们创建对象(例如Date日期对象需要通过构造函数创建对象 var 变量=new Date(),Math不需要),它里边封装了属性运算相关的常量和方法 我 ...
- Vue源码分析之数据驱动
响应式特点 数据响应式 修改数据时,视图自动更新,避免繁琐Dom操作,提高开发效率 双向绑定 数据改变,视图随之改变.视图改变,数据随之改变 数据驱动 开发时仅需要关注数据本身,不需要关心数据如何渲染 ...
- linux系统学习
一.linux系统如何配置环境变量 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件 ...
- react项目初始化配置
## [初始化项目](https://facebook.github.io/create-react-app/)) + 安装 ``` npx create-react-app myreact ``` ...
- Python和Nose实现移动应用的自动化测试
今天跟大家聊的是Python和Nose实现移动应用的自动化测试,希望对你们有帮助,有说的不好的地方,还请多多指教! 采用Appium进行自动化的功能性测试最酷的一点是,你可以使用具有最适合你的测试工具 ...
- Nodejs模块:path
当前版本:v 10.16.0 一,获取文件相关信息 1,path.basename(filepath[, ext]) 获取该文件的文件名,如果有扩展名,则一起显示扩展名: 如果不想展示扩展名,只想展示 ...
- Fitness - 05.04
倒计时241天 运动38分钟,共计9组.拉伸10分钟. 每组跑步2分钟(6.3KM/h),走路2分钟(6KM/h). 上午下了课,直奔健身房. 手机坏了,没有听音乐. 没有吃午饭,但是上午喝的咖啡还是 ...
- Mac系统下php.ini的位置
http://blog.csdn.net/meegomeego/article/details/25704645 /private/etc/php.ini /usr/local/etc/php/5.5 ...