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 ...
随机推荐
- 《Java从入门到失业》第一章:计算机基础知识(二):计算机组成及基本原理
1.2计算机组成及基本原理 1.2.1硬件组成 这里说的计算机主要指微型计算机,俗称电脑.一般我们见到的有台式机.笔记本等,另外智能手机.平板也算.有了一台计算机,我们就能做很多事情了,比如我在写这篇 ...
- unity探索者之支付宝支付,非第三方插件
版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/8405044.html 支付宝的sdk接入方式和微信支付比较类似,大部分的工作也基本 ...
- dcoker 小应用(一)
docker 创建Ubuntu系统 1.创建Dockerfile #ubuntu:14.04 image FROM ubuntu:14.04 MAINTAINER XXX, xxx@xxx.com R ...
- Go | Go 语言打包静态文件以及如何与Gin一起使用Go-bindata
系列文章目录 第一章 Go 语言打包静态文件以及如何与Gin一起使用Go-bindata 目录 系列文章目录 前言 一.go-bindata是什么? 二.使用步骤 1. 安装 2. 使用 3. 读取文 ...
- 如何运用excel或spss等软件统计大量纸质问卷?
在用纸质问卷进行数据收集时,总是避不开一个问题,就是如何把数据快速准确的进行统计分析.这里提供一个方法,包括以下几个步骤: 一.录入数据 二.上传数据 三.分析数据 一.录入数据 首先把纸质问卷 ...
- 曹工改bug:cpu狂飙,old gc频繁,线程神秘死亡连环案件调查报告
曹工改bug:cpu狂飙,old gc频繁,线程神秘死亡连环案件调查报告 前言 前两天,访问开发环境上一个java服务,发现一直转圈圈,因为我开着fiddler,可以看到的现象是,接口一直没返回:本来 ...
- 从零开始的SpringBoot项目 ( 四 ) 整合mybatis
一.创建一个SpringBoot项目 从零开始的SpringBoot项目 ( 二 ) 使用IDEA创建一个SpringBoot项目 二.引入相关依赖 <!--mysql数据库驱动--> & ...
- secureCRT中sftp的使用
securecrt 按下ALT+P就开启新的会话 进行ftp操作.输入:help命令,显示该FTP提供所有的命令pwd: 查询linux主机所在目录(也就是远程主机目录)lpwd: 查询本地目录(一般 ...
- websocket学习(转载)
public interface WebSocketMessageBrokerConfigurer { // 添加这个Endpoint,这样在网页中就可以通过websocket连接上服务,也就是我们配 ...
- 焦大翻译:提防一些seo错误认知(完整版)
http://www.wocaoseo.com/thread-179-1-1.html 多人在开始做seo的时候,都曾经尝试通过黑盒测试来找出哪些因素对排名有效果. 黑盒测试是我们IT行业常用术语,它 ...