key

js中数组对象去重的几种方法

谁都会走 提交于 2020-03-28 10:51:06
var arr = [{ key: '01', value: '乐乐' }, { key: '02', value: '博博' }, { key: '03', value: '淘淘' },{ key: '04', value: '哈哈' },{ key: '01', value: '乐乐' }]; // 方法1:利用对象访问属性的方法,判断对象中是否存在key var result = []; var obj = {}; for(var i =0; i<arr.length; i++){ if(!obj[arr[i].key]){ result.push(arr[i]); obj[arr[i].key] = true; } } console.log(result); // [{key: "01", value: "乐乐"},{key: "02", value: "博博"},{key: "03", value: "淘淘"},{key: "04", value: "哈哈"}] // 方法2:利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值 var obj = {}; arr = arr.reduce(function(item, next) { obj[next.key] ? '' : obj[next.key] = true &

C#List或者Set集合相同的key合并Value的值

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-28 03:48:49
private Dictionary<string, SortedSet<string>> MergeIdenticalKey(Dictionary<string, SortedSet<string>> dic, string key, SortedSet<string> set) { if (set == null || set.Count == 0 || string.IsNullOrEmpty(key)) return dic; SortedSet<string> sortedSet = null; if (dic.ContainsKey(key))//包含重复key { foreach (KeyValuePair<string, SortedSet<string>> item in dic) { if (item.Key == key) { string strFldval = null; foreach (string myValues in item.Value) strFldval += myValues + ","; foreach (string str in set) strFldval += str + ","; dic.Remove(key); sortedSet = new SortedSet<string>(strFldval.Split(',')

利用php的mcrypt模块加密解密(AES、DES等等)

岁酱吖の 提交于 2020-03-28 02:44:47
php des加密: $cipher_list = mcrypt_list_algorithms();//mcrypt支持的加密算法列表 $mode_list = mcrypt_list_modes();//mcrypt支持的加密模式列表 // print_r($cipher_list); // print_r($mode_list); function encrypt($key,$data){ $td = mcrypt_module_open("des", "", "ecb", "");//使用MCRYPT_DES算法,ecb模式 $size = mcrypt_enc_get_iv_size($td); //设置初始向量的大小 $iv = mcrypt_create_iv($size,MCRYPT_RAND); //创建初始向量 $key_size = mcrypt_enc_get_key_size($td); //返回所支持的最大的密钥长度(以字节计算) $salt = ''; $subkey = substr(md5(md5($key).$salt), 0,$key_size);//对key复杂处理,并设置长度 mcrypt_generic_init($td, $subkey, $iv); $endata = mcrypt_generic($td, $data);

saltstack简单使用

混江龙づ霸主 提交于 2020-03-28 00:32:04
安装, 官方文档 配置阿里云的saltstack镜像仓库 主安装salt-master salt-minion salt-api 从安装salt-minion 关闭防火墙 或者打开端口 firewall firewall-cmd --permanent --zone=public --add-port=4505-4506/tcp firewall-cmd --reload or iptables -A INPUT -m state --state new -m tcp -p tcp --dport 4505:4506 -j ACCEPT 启动服务 systemctl start salt-master systemctl start salt-minion systemctl enable salt-master systemctl enable salt-minion 配置, 官方文档 master master配置详解 配置监听端口 /etc/salt/master --> interface 配置accept public keys from minion /etc/salt/master --> auto_accept 或者手动允许minion key salt-key # 查看keys 也可以使用salt-key -L salt-key -A # 通过所有key

JavaScript字典

↘锁芯ラ 提交于 2020-03-27 06:52:06
3 月,跳不动了?>>> 字典中存储的是 [key , value] ,其中键名是用来查询特定的元素的。字典和集合很相似,只是集合以 [value,value] 的格式来存储数据的。字典也叫作映射。 JavaScript实现的字典 下面通过一个实际例子来创建并且使用一下字典。 function Dictionary(){ var items = {}; this.set = function(key, value){ items[key] = value; //以键作为索引来存储数据 }; this.remove = function(key){ if (this.has(key)){ delete items[key]; return true; } return false; }; this.has = function(key){ return items.hasOwnProperty(key); //return value in items; }; this.get = function(key) { return this.has(key) ? items[key] : undefined; }; this.clear = function(){ items = {}; }; this.size = function(){ return Object.keys

Js中获取对象的所有key值

别等时光非礼了梦想. 提交于 2020-03-27 05:36:55
Js中获取对象的所有key值 假如现在有一个对象 var obj = { A:2 ,B:"Ray" ,C:true ,D:function(){} } 如果想遍历对象obj中的所有键值,一般是用以下方式 for(var key in obj){ console.log(key,obj[key]) } 输出: A 2 B Ray C true D function (){} 如果只是想获取所有的key值,用上面的方法也行得通。 但有更简单的方式:Object.keys(...),返回值是包含key的数组(IE9及以上可支持 Chrome与FF自不必说) Object.values() //获取所有的value值 Object.entries() //分别将keys 和 values 放到两个数组中 如 console.log(Object.keys(obj)) 输出: ["A", "B", "C", "D"] 假如现在有一个对象 var obj = { A:2 ,B:"Ray" ,C:true ,D:function(){} } 如果想遍历对象obj中的所有键值,一般是用以下方式 for(var key in obj){ console.log(key,obj[key]) } 输出: A 2 B Ray C true D function (){} 如果只是想获取所有的key值

MVCC在分布式系统中的应用

亡梦爱人 提交于 2020-03-26 10:58:29
问题 最近项目中遇到了一个分布式系统的并发控制问题。该问题可以抽象为:某分布式系统由一个数据中心D和若干业务处理中心L1,L2 ... Ln组成;D本质上是一个key-value存储,它对外提供基于HTTP协议的CRUD操作接口。L的业务逻辑可以抽象为下面3个步骤: read: 根据keySet {k1, ... kn}从D获取keyValueSet {k1:v1, ... kn:vn} do: 根据keyValueSet进行业务处理,得到需要更新的数据集keyValueSet' {k1':v1', ... km':vm'} ( 注 :读取的keySet和更新的keySet'可能不同) update: 把keyValueSet'更新到D ( 注 :D保证在一次调用更新多个key的原子性) 在没有事务支持的情况下,多个L进行并发处理可能会导致数据一致性问题。比如,考虑L1和L2的如下执行顺序: L1从D读取key:123对应的值100 L2从D读取key:123对应的100 L1对值增加1,将key:123更新为100 + 1 L2对值增加2,将key:123更新为100 + 2 如果L1和L2串行执行,key:123对应的值将为103,但上面并发执行中L1的执行效果完全被L2所覆盖,实际key:123所对应的值变成了102。 解决方案1:锁机制 为了让L的处理可串行化

3.映射-->字典

喜欢而已 提交于 2020-03-25 17:59:12
3 月,跳不动了?>>> 映射-->字典 定义 字典(dict)是一种无序集合对象类型,可以存储任意的数据类型 字典也是Python中唯一的映射类型,通过"key-value"键值对的方式存储数据 与列表相比,字典是无序的,列表是有序;列表采用偏移位置来存取,字典采用键/散列映射来存取,速度快效率高 列表虽然速度慢,但是内存消耗小 字典虽然速度快,但是内存消耗大 功能 支持复杂的数据存储和处理 用于存储其他对象信息 Python最强大的“容器” 语法 变量 = {键1:值1,键2:值2,……} d = {key1 : value1, key2 : value2,…… } d ={'A':1,'B':2,'C':3} 特征 无序:字典中信息没有按索引位置存储,而是按照散列映射关系存储 可变:键是不可变的,并且必须是唯一的 键值对根据键的散列值作为索引,若键发生变动,则无法找到对应的值 键只能由数字、字符串、元组等不可变对象组成,不能用列表 >>> d ={['a']:1,'B':2,'C':3} Traceback (most recent call last): File " <input> ", line 1, in <module> TypeError: unhashable type: 'list' 一个键只能对应一个值 >>> d ={'A':1,'B':2,'C':3,

配置https

跟風遠走 提交于 2020-03-24 11:28:20
3 月,跳不动了?>>> 配置https https功能由ngx_http_ssl_module模块提供。https连接的认证过程见 SSL握手机制 。简单版的过程如下: 一,客户端say hello,并发送一个随机数给服务端。 二,服务端say hello,并回复一个随机数给客户端。 三,服务端发送数字证书给客户端。 四,客户端使用信任的CA公钥解密数字证书得到服务端的公钥。 五,客户端使用服务端的公钥加密一个预备主密钥并发送给服务端。 六,服务端使用自己的私钥解密预备主密钥。 七,双方都得到了2个随机数加一个预备主密钥。通过这3个随机数形成一个会话主密钥,即session key。至此ssl握手结束,连接的认证过程也完毕。 对于服务端而言,在配置https时,需要提供自己的数字证书用于发送给客户端,还要提供自己的私钥用于解密客户端发送的预备主密钥。当ssl连接建立完成后,后续连接要传输的数据都采用session key进行加密,但注意session key是对称加密,客户端和服务端是一样的。 还需注意,在创建证书请求时,由于需要指定common name,这是需要使用https的站点,因此每个ssl证书只能为一个server_name提供https服务。不过,通过特殊的配置方法,也能让一个ssl证书服务于整个域名或域名内的某些主机。例如,https://www.baidu

wsd

核能气质少年 提交于 2020-03-24 08:44:17
<span>哈哈哈哈</span> <span>哈哈哈哈</span> <span>哈哈哈哈</span> <script> for(let i = 0; i < 26; i++){ const key = String.fromCharCode(65 + i) //A-Z赋给key当作键 map[key] = { title: key, items: [] } array.map((v,k)=>{ //遍历数组 let firstIndex = v.charAt(0).toUpperCase();//首字母 if(firstIndex.toUpperCase() == String.fromCharCode(65+i)){//统一转成大写进行逐个判断 map[key].items.push(v)//push进相对应的数组里头 } }) // //如果当前的数组里头为空,则跳过。 if(map[key].items === undefined || map[key].items.length == 0){ continue; }else{ this.newArr.push(map[key])//将分类好的每个对象 合并在一个数组里面 } } </script> 来源: https://www.cnblogs.com/xiaobaiv/p/12556696.html