当前位置: 首页 > news >正文

【御控物联】JavaScript JSON结构转换(17):数组To对象——键值互换属性重组

文章目录

  • 一、JSON结构转换是什么?
  • 二、核心构件之转换映射
  • 三、案例之《JSON数组 To JSON对象》
  • 四、代码实现
  • 五、在线转换工具
  • 六、技术资料


一、JSON结构转换是什么?

JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换,生成新的JSON对象或数组的过程。这种转换可以包括改变JSON数据的结构、提取特定字段、合并多个JSON数据,或者对数据进行计算和处理等操作。

在JSON结构转换中,常见的操作包括:

  • 提取字段:从一个JSON对象中提取特定字段,生成新的JSON对象。
  • 过滤数据:根据条件过滤JSON数据,生成符合条件的新JSON对象或数组。
  • 映射转换:将一个JSON对象中的字段映射到另一个字段,生成新的JSON对象。
  • 合并数据:将多个JSON对象或数组合并成一个新的JSON对象或数组。

JSON结构转换通常在数据处理、数据清洗、数据分析等场景中广泛应用。通过结构转换,可以根据需求定制化地处理JSON数据,使其符合特定的业务逻辑或数据格式要求。
为此我们提供了一个简单开源的JS类库,接下来我们对此类库进行详细讲解。

二、核心构件之转换映射

在对类库进行详细讲解之前,我们先来介绍一下转换映射。
转换映射是JSON结构转换的核心构件,工具依据分析转换映射来进行源与目标JSON结构的转化。

转换映射的构成如下:

{"AimJsonPath": "root.org","OrgJsonPath": "root.aim","TranType": 4,"Options":{"KeyInitIndex":0,"AddElementsOption":"1",        "TranOP":"1",  "TranWay":"1" }
}

转换映射的属性介绍如下:

  1. AimJsonPath
    目标结构路径
  2. OrgJsonPath
    目标结构路径
  3. TranType
    转换类型 1:源Key->目标Key 2:源Key->目标Value 3:源Value->目标Key 4:源Value->目标Value
  4. Options.KeyInitIndex
    自动生成的元素的起始索引(默认为0)
  5. Options.AddElementsOption
    1:追加新元素到数组/对象 (默认为1)
    2:替换数组/对象的原有属性
  6. Options.TranOP
    1:将源子元素复制到目标,使用源子元素的Key(默认为1)
    2:将源子元素复制到目标,为源子元素新生成Key
    3:依据源元素在目标构建同等数量的目标子元素
  7. Options.TranWay
    1:交叉映射 ( 默认为1)
    2:一对一映射

三、案例之《JSON数组 To JSON对象》

源JSON结构:

{"devOrg":[{"idOrg": "0001","proOrg": [{"idOrg": "","nOrg": "11","dtOrg": "","vOrg": "1.1","qOrg": ""}]}]
}

目标JSON结构:

{"devAim": {"642fccd1Aim": {"1Aim": "111","2Aim": "122"},"timeAim": 1682476529}
}

转换需求:

以下需求分别执行

1.将源结构的“devOrg”键替换到目标结构的“devAim”值
2.将源结构的“devOrg”键追加到目标结构的“devAim”值
3.将源结构的“devOrg”值替换到目标结构的“devAim”值
4.将源结构的“devOrg”值追加到目标结构的“devAim”值
5.将源结构的“devOrg[0]”键追加到目标结构的“devAim.642fccd1Aim”值
6.将源结构的“devOrg[0]”值追加到目标结构的“devAim.642fccd1Aim”值
7.将源结构的“devOrg[0]”键追加到目标结构的“devAim.642fccd1Aim.1Aim”值
8.将源结构的“devOrg[0]”值追加到目标结构的“devAim.642fccd1Aim.1Aim”值

四、代码实现

1.将源结构的“devOrg”键替换到目标结构的“devAim”值


import JsonTranferUtil from './json_transfer'/************************数组转对象   示例数据 ********************** *//// 转换类型
/// 1:源Key->目标Key
/// 2:源Key->目标Value
/// 3:源Value->目标Key
/// 4:源Value->目标Value
const mappings = [{"OrgJsonPath": "root.devOrg","AimJsonPath": "root.devAim","TranType": 2,"Options": {"KeyInitIndex": 0,"AddElementsOption": "2","TranOP": "1","TranWay": "1"}}
];
const jsonOrg = {"devOrg":[{"idOrg": "0001","proOrg": [{"idOrg": "","nOrg": "11","dtOrg": "","vOrg": "1.1","qOrg": ""}]}]};
const jsonAim ={"devAim": {"642fccd1Aim": {"1Aim": "111","2Aim": "122"},"timeAim": 1682476529}};/*******************数组转对象    测试程序***************** */let jsonTranferUtil = new JsonTranferUtil(jsonOrg, jsonAim, mappings);
let result = jsonTranferUtil.tranJson();
console.log("*************************最终转换结果*********************************")
console.log(JSON.stringify(result), 9999999999999)

执行结果如下:

在这里插入图片描述

2.将源结构的“devOrg”键追加到目标结构的“devAim”值


import JsonTranferUtil from './json_transfer'/************************数组转对象   示例数据 ********************** *//// 转换类型
/// 1:源Key->目标Key
/// 2:源Key->目标Value
/// 3:源Value->目标Key
/// 4:源Value->目标Value
const mappings = [{"OrgJsonPath": "root.devOrg","AimJsonPath": "root.devAim","TranType": 2,"Options": {"KeyInitIndex": 0,"AddElementsOption": "1","TranOP": "1","TranWay": "1"}}
];
const jsonOrg = {"devOrg":[{"idOrg": "0001","proOrg": [{"idOrg": "","nOrg": "11","dtOrg": "","vOrg": "1.1","qOrg": ""}]}]};
const jsonAim ={"devAim": {"642fccd1Aim": {"1Aim": "111","2Aim": "122"},"timeAim": 1682476529}};/*******************数组转对象    测试程序***************** */let jsonTranferUtil = new JsonTranferUtil(jsonOrg, jsonAim, mappings);
let result = jsonTranferUtil.tranJson();
console.log("*************************最终转换结果*********************************")
console.log(JSON.stringify(result), 9999999999999)

执行结果如下:
在这里插入图片描述

3.将源结构的“devOrg”值替换到目标结构的“devAim”值

import JsonTranferUtil from './json_transfer'/************************数组转对象   示例数据 ********************** *//// 转换类型
/// 1:源Key->目标Key
/// 2:源Key->目标Value
/// 3:源Value->目标Key
/// 4:源Value->目标Value
const mappings = [{"OrgJsonPath": "root.devOrg","AimJsonPath": "root.devAim","TranType": 4,"Options": {"KeyInitIndex": 0,"AddElementsOption": "2","TranOP": "1","TranWay": "1"}}
];
const jsonOrg = {"devOrg":[{"idOrg": "0001","proOrg": [{"idOrg": "","nOrg": "11","dtOrg": "","vOrg": "1.1","qOrg": ""}]}]};
const jsonAim ={"devAim": {"642fccd1Aim": {"1Aim": "111","2Aim": "122"},"timeAim": 1682476529}};/*******************数组转对象    测试程序***************** */let jsonTranferUtil = new JsonTranferUtil(jsonOrg, jsonAim, mappings);
let result = jsonTranferUtil.tranJson();
console.log("*************************最终转换结果*********************************")
console.log(JSON.stringify(result), 9999999999999)

执行结果如下:

在这里插入图片描述

4.将源结构的“devOrg”值追加到目标结构的“devAim”值


import JsonTranferUtil from './json_transfer'/************************数组转对象   示例数据 ********************** *//// 转换类型
/// 1:源Key->目标Key
/// 2:源Key->目标Value
/// 3:源Value->目标Key
/// 4:源Value->目标Value
const mappings = [{"OrgJsonPath": "root.devOrg","AimJsonPath": "root.devAim","TranType": 4,"Options": {"KeyInitIndex": 0,"AddElementsOption": "1","TranOP": "1","TranWay": "1"}}
];
const jsonOrg = {"devOrg":[{"idOrg": "0001","proOrg": [{"idOrg": "","nOrg": "11","dtOrg": "","vOrg": "1.1","qOrg": ""}]}]};
const jsonAim ={"devAim": {"642fccd1Aim": {"1Aim": "111","2Aim": "122"},"timeAim": 1682476529}};/*******************数组转对象    测试程序***************** */let jsonTranferUtil = new JsonTranferUtil(jsonOrg, jsonAim, mappings);
let result = jsonTranferUtil.tranJson();
console.log("*************************最终转换结果*********************************")
console.log(JSON.stringify(result), 9999999999999)

执行结果如下:

在这里插入图片描述

5.将源结构的“devOrg[0]”键追加到目标结构的“devAim.642fccd1Aim”值


import JsonTranferUtil from './json_transfer'/************************数组转对象   示例数据 ********************** *//// 转换类型
/// 1:源Key->目标Key
/// 2:源Key->目标Value
/// 3:源Value->目标Key
/// 4:源Value->目标Value
const mappings = [{"OrgJsonPath": "root.devOrg[0]","AimJsonPath": "root.devAim.642fccd1Aim","TranType": 2,"Options": {"KeyInitIndex": 0,"AddElementsOption": "1","TranOP": "1","TranWay": "1"}}
];
const jsonOrg = {"devOrg":[{"idOrg": "0001","proOrg": [{"idOrg": "","nOrg": "11","dtOrg": "","vOrg": "1.1","qOrg": ""}]}]};
const jsonAim ={"devAim": {"642fccd1Aim": {"1Aim": "111","2Aim": "122"},"timeAim": 1682476529}};/*******************数组转对象    测试程序***************** */let jsonTranferUtil = new JsonTranferUtil(jsonOrg, jsonAim, mappings);
let result = jsonTranferUtil.tranJson();
console.log("*************************最终转换结果*********************************")
console.log(JSON.stringify(result), 9999999999999)

执行结果如下:

在这里插入图片描述

6.将源结构的“devAim[0]”值追加到目标结构的“devAim.642fccd1Aim”值


import JsonTranferUtil from './json_transfer'/************************数组转对象   示例数据 ********************** *//// 转换类型
/// 1:源Key->目标Key
/// 2:源Key->目标Value
/// 3:源Value->目标Key
/// 4:源Value->目标Value
const mappings = [{"OrgJsonPath": "root.devOrg[0]","AimJsonPath": "root.devAim.642fccd1Aim","TranType": 4,"Options": {"KeyInitIndex": 0,"AddElementsOption": "1","TranOP": "1","TranWay": "1"}}
];
const jsonOrg = {"devOrg":[{"idOrg": "0001","proOrg": [{"idOrg": "","nOrg": "11","dtOrg": "","vOrg": "1.1","qOrg": ""}]}]};
const jsonAim ={"devAim": {"642fccd1Aim": {"1Aim": "111","2Aim": "122"},"timeAim": 1682476529}};/*******************数组转对象    测试程序***************** */let jsonTranferUtil = new JsonTranferUtil(jsonOrg, jsonAim, mappings);
let result = jsonTranferUtil.tranJson();
console.log("*************************最终转换结果*********************************")
console.log(JSON.stringify(result), 9999999999999)

执行结果如下:
在这里插入图片描述

7.将源结构的“devOrg[0]”键追加到目标结构的“devAim.642fccd1Aim.1Aim”值


import JsonTranferUtil from './json_transfer'/************************数组转对象   示例数据 ********************** *//// 转换类型
/// 1:源Key->目标Key
/// 2:源Key->目标Value
/// 3:源Value->目标Key
/// 4:源Value->目标Value
const mappings = [{"OrgJsonPath": "root.devOrg[0]","AimJsonPath": "root.devAim.642fccd1Aim.1Aim","TranType": 2,"Options": {"KeyInitIndex": 0,"AddElementsOption": "1","TranOP": "1","TranWay": "1"}}
];
const jsonOrg = {"devOrg":[{"idOrg": "0001","proOrg": [{"idOrg": "","nOrg": "11","dtOrg": "","vOrg": "1.1","qOrg": ""}]}]};
const jsonAim ={"devAim": {"642fccd1Aim": {"1Aim": "111","2Aim": "122"},"timeAim": 1682476529}};/*******************数组转对象    测试程序***************** */let jsonTranferUtil = new JsonTranferUtil(jsonOrg, jsonAim, mappings);
let result = jsonTranferUtil.tranJson();
console.log("*************************最终转换结果*********************************")
console.log(JSON.stringify(result), 9999999999999)

执行结果如下:
在这里插入图片描述

8.将源结构的“devAim[0]”值追加到目标结构的“devAim.642fccd1Aim.1Aim”值


import JsonTranferUtil from './json_transfer'/************************数组转对象   示例数据 ********************** *//// 转换类型
/// 1:源Key->目标Key
/// 2:源Key->目标Value
/// 3:源Value->目标Key
/// 4:源Value->目标Value
const mappings = [{"OrgJsonPath": "root.devOrg[0]","AimJsonPath": "root.devAim.642fccd1Aim.1Aim","TranType": 4,"Options": {"KeyInitIndex": 0,"AddElementsOption": "1","TranOP": "1","TranWay": "1"}}
];
const jsonOrg = {"devOrg":[{"idOrg": "0001","proOrg": [{"idOrg": "","nOrg": "11","dtOrg": "","vOrg": "1.1","qOrg": ""}]}]};
const jsonAim ={"devAim": {"642fccd1Aim": {"1Aim": "111","2Aim": "122"},"timeAim": 1682476529}};/*******************数组转对象    测试程序***************** */let jsonTranferUtil = new JsonTranferUtil(jsonOrg, jsonAim, mappings);
let result = jsonTranferUtil.tranJson();
console.log("*************************最终转换结果*********************************")
console.log(JSON.stringify(result), 9999999999999)

执行结果如下:

在这里插入图片描述

五、在线转换工具

为了让使用者更加方便的配置出映射关系,为此开发了一套在线转换工具,可在工具中通过拖拽即可配置想要的结构转换关系,并可对转换关系所能实现的效果实时进行预览更改。

工具地址:数据转换工具
在这里插入图片描述

六、技术资料

  • Github:edq-ebara/data-transformation-javascript: 数据转化(javascript) (github.com)
  • 技术探讨QQ群:775932762
  • 工具连接:数据转换工具
  • 御控官网:https://www.yu-con.com/

相关文章:

【御控物联】JavaScript JSON结构转换(17):数组To对象——键值互换属性重组

文章目录 一、JSON结构转换是什么?二、核心构件之转换映射三、案例之《JSON数组 To JSON对象》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换…...

免注册,ChatGPT可即时访问了!

AI又有啥进展?一起看看吧 Apple进军个人家用机器人 Apple在放弃自动驾驶汽车项目并推出混合现实头显后,正在进军个人机器人领域,处于开发家用环境机器人的早期阶段 报告中提到了两种可能的机器人设计。一种是移动机器人,可以跟…...

探索未来游戏:生成式人工智能AI如何重塑你的游戏世界?

生成式人工智能(Generative AI)正以前所未有的速度改变着各行各业的运作模式。其中,游戏产业作为科技应用的前沿阵地,正经历着前所未有的变革。本文将探讨生成式人工智能如何重塑游戏产业,以及这一变革背后的深远影响。…...

ubuntu23设置kibana后台启动服务

要在Ubuntu 23系统中设置Kibana作为系统服务,以便能够通过systemd管理其启动、停止、重启以及设置开机自动启动,可以按照以下步骤操作: 1. 创建Kibana systemd服务单元 创建一个名为kibana.service的文件在 /etc/systemd/system/ 目录下&am…...

身份证实名制、C#身份核验代码示例、身份证查询

在以前,企业采用人工审核的方式对线上用户进行身份信息真伪的核验,在用户上传身份信息后,人工进行后台审核,虽能满足企业对用户实名认证的需求,但效率慢、耗时长,且存在一定的人为误差,对高度PS…...

【leetcode面试经典150题】15.分发糖果(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…...

Elasticsearch如何选择版本

不同版本的ES差异非常大,包括不局限于ES语法、架构、API、集群搭建等等。这些差异足以导致不同版本是否能满足你的业务场景以及后续开发维护成本等各种问题。 先说结论,以个人实践经验及综合考虑推荐使用 7.x 版本中的 7.10版本 ES版本对比 以下是通过…...

P8749 [蓝桥杯 2021 省 B] 杨辉三角形

[蓝桥杯 2021 省 B] 杨辉三角形 题目描述 下面的图形是著名的杨辉三角形: 如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列: 1 , 1 , 1 , 1 , 2 , 1 , 1 , 3 , 3 , 1 , 1 , 4 , 6 , 4 , 1 , … 1,1,1,1,2,1,1,3,3,1,1,4,6,4,1, …...

MySQL数据库——1.创建数据库

在 MySQL 数据库中,要创建一个新的数据库,可以使用 SQL 命令 CREATE DATABASE。创建数据库是管理数据的第一步,它提供了一个容器,用于存储表、视图、存储过程等数据库对象。 示例: CREATE DATABASE my_database; 在…...

计算机视觉研究院 | Drone-YOLO:一种有效的无人机图像目标检测

本文来源公众号“计算机视觉研究院”,仅用于学术分享,侵权删,干货满满。 原文链接:Drone-YOLO:一种有效的无人机图像目标检测 无人机图像中的目标检测是各个研究领域的重要基础。然而,无人机图像带来了独…...

[C#]使用OpencvSharp去除面积较小的连通域

【C介绍】 关于opencv实现有比较好的算法,可以参考这个博客OpenCV去除面积较小的连通域_c#opencv 筛选小面积区域-CSDN博客 但是没有对应opencvsharp实现同类算法,为了照顾懂C#编程同学们,因此将 去除面积较小的连通域算法转成C#代码。 方…...

联邦学习目前面临的挑战以及解决方案

学习目标: 联邦学习目前面临的挑战以及解决方案 学习内容: 联邦学习是一种新兴的人工智能基础技术,它在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算结点之间开展高效率的…...

Day60:WEB攻防-XMLXXE安全无回显方案OOB盲注DTD外部实体黑白盒挖掘

目录 XML&XXE-传输-原理&探针&利用&玩法 XXE 黑盒发现 XXE 白盒发现 XXE修复防御方案 有回显 无回显 XML&XXE-黑盒-JSON&黑盒测试&类型修改 XML&XXE-白盒-CMS&PHPSHE&无回显 知识点: 1、XXE&XML-原理-用途&…...

解锁网络安全新境界:雷池WAF社区版让网站防护变得轻而易举!

网站运营者的救星:雷池WAF社区版 ️ 嘿朋友们!今天我超级激动要跟你们分享一个神器——雷池WAF社区版。这个宝贝对我们这帮网站运营者来说,简直就是保护伞! 智能语义分析技术:超级侦探上线 先说说为啥我这么稀饭它。雷…...

RabbitMQ安装详细教程

(一)在Windows系统上安装Erlang的步骤如下: 打开Erlang的官方下载页面,选择适合你的Windows系统的版本进行下载。 下载完成后,双击运行下载的.exe文件,进入Erlang的安装向导。 在安装向导中,按…...

如何快速写出一个完整的测试用例

测试用例是为了验证软件功能或需求而设计的一组测试输入、执行条件和预期结果。编写测试用例的目的是确保测试过程全面高效、有据可查。 一般来说,编写测试用例的流程包括以下几个步骤: 分析需求:阅读需求文档,理解软件的功能和业…...

Docker容器与虚拟化技术:OpenEuler 部署 ES 与 Kibana

目录 一、实验 1.环境 2.OpenEuler 部署 ES (EalasticSearch) 3.OpenEuler 部署 Kibana 4.部署 Elasticvue插件 5.使用cpolar内网穿透 6.使用Elasticvue 一、实验 1.环境 (1)主机 表1 主机 系统架构版本IP备注LinuxopenEuler22.03 LTS SP2 1…...

数学中的各种符号虚数概念

max i∈S​A i ​ ≥ ∑ i∈S​B i​. 这个不等式表达的意思是对于集合 S 中的任意非空子集,子集中的最大的 A_i(A 的元素)的值都大于等于子集中所有 B_i(B 的元素)的值的总和。换句话说,集合 S 中的最大…...

什么是中间件

中间件是指在应用程序与操作系统之间提供服务的软件,它可以隐藏底层操作系统的复杂性,为应用程序提供各种实用的服务,以便应用程序更好地实现业务逻辑。中间件通常提供如下几种服务: 数据库连接:中间件可以为应用程序提…...

RabbitMQ面经 手敲浓缩版

保证可靠性 生产者 本地事务完成和消息发送同时完成 通过事务消息完成 重写confirm在里面做逻辑处理 确保发送成功(不成功就放入到重试队列) MQ 打开持久化确保消息不会丢失 消费者 改成手动回应 不重复消费 生产者 保证不重复发送消息 消费者…...

解锁金融数据中心场景,实现国产化AD替代,宁盾身份域管为信创电脑、应用提供统一管理

随着信创国产化改造持续推进,越来越多的金融机构不断采购信创服务器、PC、办公软件等,其 IT 基础设施逐渐迁移至国产化 IT 架构下。为支撑国产化 IT 基础设施的正常使用和集中管理运维,某金融机构数据中心的微软Active Directory(…...

Django的js文件没有响应(DOMContentLoaded)

问题出现的原因是因为当浏览器解析到“script”标签并执行其中的JavaScript代码时,页面上的DOM元素尚未完全加载和渲染。这意味着,当尝试通过document.getElementById(‘create-theme-button’)获取元素时,该元素还不存在,导致add…...

滑动窗口代码模板

代码模板: //滑动窗口伪代码 class Solution { public:int minWindow(string s) {// 同方向移动,起始的时候,都位于 0,表示我们定义搜索区间为 [left, right) ,此时区间为空区间int left 0;int right 0;while(right…...

SpringBoot实现邮箱验证

目录 1、开启邮箱IMAP/SMTP服务,获取授权码 2、相关代码 1、使用配置Redis(用于存储验证码,具有时效性) 2、邮箱依赖和hutool(用于随机生成验证码) 3、配置Redis和邮箱信息 4、开启Redis服务 5、编写发送…...

Mac安装Docker提示Another application changed your Desktop configuration解决方案

1. 问题描述 Mac安装Docker后,提示Another application changed your Desktop configuration,Re-apply configurations无效 2. 解决方案 在终端执行下述命令即可解决: sudo ln -sf /Applications/Docker.app/Contents/Resources/bin/docke…...

5分钟安装docker和docker compose环境

5分钟安装docker和docker compose环境 5分钟安装docker和docker compose环境环境介绍卸载docker环境安装docker安装docker compose 5分钟安装docker和docker compose环境 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑…...

leetcode热题100.跳跃游戏2

Problem: 45. 跳跃游戏 II 文章目录 题目思路复杂度Code 题目 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处: …...

【前端】CSS(引入方式+选择器+常用元素属性+盒模型+弹性布局)

文章目录 CSS一、什么是CSS二、语法规范三、引入方式1.内部样式表2.行内样式表3.外部样式 四、选择器1.选择器的种类1.基础选择器:单个选择器构成的1.标签选择器2.类选择器3.id 选择器4.通配符选择器 2.复合选择器1.后代选择器2.子选择器3.并集选择器4.伪类选择器 五…...

迷茫下是自我提升

长夜漫漫,无心睡眠。心中所想,心中所感,忧愁当前,就执笔而下,写下这篇文章。 回忆过往 回想当初为啥学前端,走前端这条路,学校要求嘛,兴趣爱好嘛,还是为了钱。 时间带着…...

用vscode仿制小米官网

html内容: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><link rel&quo…...

专业网站优化软件/网站建设案例

1、思路步骤&#xff1a; step: 1&#xff09;先从用户获得一个数据&#xff0c;放在大根堆&#xff1b; 2&#xff09;在获得一个数据与大根堆的堆顶进行比较&#xff0c;若小于等于堆顶就放入大根堆&#xff0c;否则 放入小根堆&#xff1b…...

网站如何做cc防护/网站宣传的方法有哪些

图片来自网络 文 | 魏启扬 来源 | 智能相对论&#xff08;ID&#xff1a;aixdlun&#xff09; 中国汽车经销商的库存指数已经连续17个月超过警戒线了。 根据中国汽车流通协会上周发布的《中国汽车经销商库存预警指数调查》显示&#xff0c;今年5月份汽车经销商库存预警指数…...

金华做网站多少钱/投百度做广告效果怎么样

http://blog.csdn.net/aq_cainiao_aq/article/details/51701861...

景区微网站建设费用/临沂网站建设

为了提高虚拟机的性能&#xff0c;在现在配置VMware ESXi时&#xff0c;一般需要在主机上添加一块到多块固态硬盘&#xff0c;作为缓存使用。通常情况下&#xff0c;为主机配置1块120G&#xff5e;240GB的固态硬盘即可。在使用固态硬盘时&#xff0c;不要使用服务器的RAID卡配置…...

免费 网站建设/网站优化服务

presentation: opencv中常见的二值化操作&#xff0c;当然&#xff0c;不同图片你要去调参&#xff0c;不同的二值化处理效果不同&#xff0c;可以根据特定场景二值化后的效果选取想要的二值化操作。 import cv2 import numpy as np from matplotlib import pyplot as plt imp…...

南京专业网站开发团队/官方网站百度一下

#!/usr/bin/python#codingutf-8#for buy chicksprint 公鸡5元一只&#xff0c;母鸡3元一只&#xff0c;小鸡一元3只&#xff0c;百钱买百鸡有以下方案cocks100//5hens100//3chicks100*3for i in range(0,cocks1):  for j in range(0,hens1):    for k in range(0,chicks,…...