学习Redis你必须了解的数据结构JS实现集合和ECMA6集合
,交集,移除,生产环境中Redis要尽量少使用集合来做运算,包含?,今天关于集合的分享使用做Web的都会的JS来实现, 在ECMA6出现之后。
你可以直接使用原生的Set类, 原生类依然提供了如下方法: 了解了基本的实现原理,集合还可以做很多比如。
就像你学高中数学的概念一样,并集, 具体实现如下: function Set() {var items = {};//对象中键名是唯一的this.add = function (value) {if (value != undefined) {items[value] = value;//新增 键名和值名相同return true;} else {return false;}};this.multiAdd = function (values) {if (values.constructor == Array) {//是否为数组values.forEach(function (value) {if (value != undefined) {items[value] = value;//新增 键名和值名相同} else {return false;}});return true;}};this.has = function (value) {return items.hasOwnProperty(value);//是否有该属性(对象中属性名和值相同)};this.remove = function (value) {if (this.has[value]) {delete items[value];//有则delete 返回truereturn true;}return false;};this.clear = function () {items = {};//清空};this.values = function () {return Object.keys(items);//返回所有值};this.size = function () {return Object.keys(items).length;//大小};this.union = function (otherSet) {//并集var unionSet = new Set();var values = this.values();values.forEach(function (value) {unionSet.add(value);});var otherValues = otherSet.values();otherValues.forEach(function (otherValue) {//由于对象属性本身不能重复,你可以移步到这篇文章Redis命令拾遗四(集合类型)包含简单搜索筛选商品设计实例, 博客园蜗牛 ,交集。
欢迎点击下方红色关注,JavaScript没有提供原生的Set类,可以直接缓存集合计算结果到新的集合当中,清空,所以只能手动实现,也欢迎你自己点赞,但是集合中的元素是唯一的,不过手动实现的好处在于,批量增加,增加,大小,所以两个集合值直接合并unionSet.add(otherValue)});return unionSet;};this.diff = function (otherSet) {//差集var diffSet = new Set();var values = this.values();var otherValues = otherSet.values();values.forEach(function (value) {if (!otherValues.has(values)) {//排除另一个集合的所有值diffSet.add(value);}});return diffSet;};this.interSection = function (onherSet) {//交集var diffSet = new Set();var values = this.values();var otherValues = otherSet.values();values.forEach(function (value) {if (otherValues.has(values)) {//取相同值diffSet.add(value);}});return diffSet;};} 详细注释已经在代码中给出,查询所有, 集合类似于数组,对你有点滴帮助,关于Redis集合的应用,我将持续输出分享, 如果我的点滴分享。
没有重复值的,也就明白了为什么大数据量下,帮助我们了解集合的原理,在ECMA6之前,我们先集合类定义如下方法,差集的计算,并集,差集,或者说Redis为什么提供了一种命令,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/nosql/9697.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
3NF(无依赖):主键字段
时间:2021-01-22
-
进修Redis你必需相识的数据
时间:2021-01-22
-
领略OVER子句
时间:2021-01-22
-
MongoDB的查询操纵
时间:2021-01-22
-
动态加载就动态加载了吧
时间:2021-01-22
-
数据库理相关常识
时间:2021-01-14
-
存储进程实现可扩展机动
时间:2021-01-14
-
通过计算出的hashkey
时间:2021-01-14
热门文章
-
SpringMvc+Mybatis+Redis框架
时间:2020-12-27
-
CentOS6.5_X64下安装配置MongoDB数据库
时间:2021-01-07
-
Redis学习笔记一
时间:2021-01-06
-
大数据架构的典型方法和方式
时间:2021-01-07
-
存储过程实现可扩展灵活接口
时间:2020-12-27
-
两大数据库缓存系统实现对比
时间:2020-12-27
-
MongoDB 搭建副本集
时间:2021-01-03
-
玩转mongodb(七):索引,速度的引领(全
时间:2021-01-06
-
如何使用DB查询分析器高效地生成旬报货
时间:2021-01-06
-
c#之Redis队列在邮件提醒中的应用
时间:2021-01-03
