数据结构横向对比, 增, 查, 改, 删

建议: 在用数据结构的时候, 优先考虑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 数组, 对象的增查改删(多语法对比)的更多相关文章

  1. EF里单个实体的增查改删以及主从表关联数据的各种增删 改查

    本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(根据主表找从表数据.根据从表 ...

  2. SQL Server 2012 学习笔记3 增查改删

    现在举例几个"增查改删"的语句 select * from UserInfor --查找所有字段 select username,UserId from UserInfor -- ...

  3. ylb:创建数据库、表,对表的增查改删语句

    ylbtech-SQL Server:SQL Server-创建数据库.表,对表的增查改删语句 SQL Server 创建数据库.表,对表的增查改删语句. 1,ylb:创建数据库.表,对表的增查改删语 ...

  4. DOM树的增查改删总结

    DOM树的增查改删总结 摘要:对HTML DOM的操作是前端JavaScript编程时必备的技能,本文是我自己对DOM树操作的总结,主要是方法的罗列,原理性的讲述较少,适合大家用于理清思路或是温习 一 ...

  5. mongodb 增查改删

    我们在  MongoDB 之 你得知道MongoDB是个什么鬼 MongoDB - 1  中学习了如果安装部署一个 MongoDB 如果没看到我的金玉良言的话,就重新打开一次客户端和服务端吧 本章我们 ...

  6. MongoDB的常用命令和增查改删

    数据库操作 Mongodb MySQL 查询库 show databases | show dbs show databases 选中库 use databaseName use databaseNa ...

  7. php 连接mongodb 增查改删操作

    查询 <?php $m=new MongoClient('mongodb://admin:admin@localhost:27017/admin'); $db=$m->hndb; $cc= ...

  8. Django 学习笔记(七)数据库基本操作(增查改删)

    一.前期准备工作,创建数据库以及数据表,详情点击<Django 学习笔记(六)MySQL配置> 1.创建一个项目 2.创建一个应用 3.更改settings.py 4.更改models.p ...

  9. MongoDB学习记录(四) - MongoDB的"增查改删"操作之"改"

    更新文档主要有以下几种方法: db.collection.updateOne(filter, update, options) db.collection.updateMany(filter, upd ...

随机推荐

  1. ubuntu 构建 deb 安装包

    源码包下载:http://mirrors.163.com/ubuntu/ 编译工具安装: apt-get install dpkg-dev 以openvswitch为例: wget http://mi ...

  2. centos7 下安装生物信息软件的问题小总结

    1.安装samtools与bwa时: 缺少zlib库 下载zlib库 cd zlib/ CFLAGS="-O3 -fPIC" ./configure make make insta ...

  3. 深度学习调参笔记(trick)

    1. Adam 学习率0.00035真香: 2. SGD + Momentum 学习率应当找到合适区间,一般远大于Adam (取1,2,5,10这类数据): 3. 提前终止,防止过拟合; 4. Ens ...

  4. Java程序员值得拥有的TreeMap指南

    先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个有颜值却假装靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题 ...

  5. App 自动化,Appium 凭什么使用 UiAutomator2?

    1. UiAutomator2 是什么 可能很多人对 UiAutomator2 和 UiAutomator 傻傻分不清楚 UiAutomator 是 Google 开发的一款运行在 Android 设 ...

  6. CF1203D2 Remove the Substring (hard version) 题解

    这题初赛让我白给了6分,于是我决定回来解决一下它. 说实话,看原题题面和看CCF代码真是两种完全不同的感受…… ------------思路分析: 把$s$串删去一部分之后,会把$s$串分成两部分,当 ...

  7. Xposed+X5使用

    1.Xposed 2.X5

  8. 我们真的需要JWT吗?

    JWT(JSON Web Token)是目前最流行的认证方案之一.博客园.各种技术公众号隔三差五就会推一篇JWT相关的文章,真的多如牛毛.但我对JWT有点困惑,今天写出来跟大家探讨探讨,不要喷哈. J ...

  9. PyTorch入门-CIFAR10图像分类

    CIFAR10数据集下载 CIFAR10数据集包含10个类别,图像尺寸为 3×32×32 官方下载地址很慢,这里给一个百度云: https://pan.baidu.com/s/1oTvW8wNa-VO ...

  10. 无法登陆网站,nginx漏配置

    location / {         try_files $uri $uri/ /index.php?$query_string; }   这条主要是将index.php入口文件重写掉,所以平常我 ...