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

WPS JS宏编程教程(从基础到进阶)-- 第六部分:JS集合与映射在 WPS 的应用

目录

  • 第6章 JS集合与映射在 WPS 的应用
    • 6-1 集合的创建(实例:唯一值提取)
      • 示例代码
      • 详细解析
      • Excel 环境模拟说明
    • 6-2 集合的不重复特性应用(案例:提取唯一值记录)
      • 示例代码
      • 详细解析
      • 案例说明
    • 6-3 集合成员添加与删除
      • 示例代码
      • 代码解析
      • 直观示意(Excel 模拟表格)
    • 6-4 集合成员添加与删除应用(不重复随机数)
      • 示例代码
      • 代码解析
      • 直观示意(Excel 模拟表格)
    • 6-5 集合成员迭代(随机生成试题)
      • 示例代码
      • 代码解析
      • 模拟 Excel 题库展示
    • 6-6 并集:数组完成并集
      • 方法 1:直接使用数组展开与 Set 构造
        • 代码示例
        • 详细说明
      • 方法 2:对嵌套数组进行扁平化后取并集
        • 代码示例
        • 详细说明
      • 方法 3:利用 Excel 单元格区域数据进行并集计算
        • 代码示例
        • 详细说明
    • 6-7 交集:数组完成交集
      • 方法 1:数组交集(利用 filter 与 includes)
        • 代码示例
        • 详细说明
      • 方法 2:集合交集(利用 Set 与 filter)
      • 代码示例
        • 详细说明
      • 实例:统计3列同时出现的姓名
        • 代码示例
        • 详细说明
    • 6-8 差集:数组完成差集
      • 方法 1:计算单值差集
        • 代码示例
        • 详细说明
      • 方法 2:计算数组差集(针对数组元素为数组)
        • 代码示例
        • 详细说明
      • 实例:获取未完成订单
        • 代码示例
        • 详细说明
    • 6-9 映射的添加、修改、删除
        • 代码示例
        • 详细说明
    • 6-10 映射应用:最后 1 条记录 & 第 1 条记录获取
      • 获取最后 1 条记录
        • 代码示例
        • 详细说明
      • 获取第 1 条记录
      • 代码示例
        • 详细说明
    • 6-11 映射中键值的循环
        • 代码示例(方式1:for-of 循环)
        • 代码示例(方式2:forEach 遍历)
        • 详细说明
    • 6-12 实例1:按字段分组求和
      • 代码示例
      • 详细说明
    • 6-13 实例2:拆分记录到表格
      • 代码示例
      • 详细说明


第6章 JS集合与映射在 WPS 的应用

本章主要介绍如何在 WPS 中利用 JavaScript 的集合(Set)和映射(Map)对象来处理 Excel 数据。通过这一章,你将学会如何利用集合的唯一性、迭代以及集合和数组之间的互相转换操作,以实现数据去重、并集、交集、差集等常见需求。同时还将介绍映射操作、分组求和和记录拆分等技巧。

由于 WPS JS 宏编程的环境与标准 JavaScript 基本一致,本章中提供的案例既讲解了语法细节,也结合实际业务场景(如提取唯一值、生成不重复随机数、组卷等),帮助开发者编写出高效、易读的代码。


6-1 集合的创建(实例:唯一值提取)

在这一节中,我们使用 ES6 中的 Set 对象来创建集合,并利用其不允许重复的特性提取唯一值。下面的示例演示了如何从数组或字符串构造集合,再将集合转换为数组,以及如何统计集合中的元素个数。

示例代码

function test(){// 创建一个空集合, Set 的数据类型:Set<any>// 用于存储任意类型的数据(例如字符串、数字等)var s1 = new Set(); // 创建一个空集合// 通过传入数组来构造集合,数组中的重复元素会被自动去除// 输入示例:["a", "b", "c", "b"],输出集合中元素为: "a", "b", "c"var s2 = new Set(["a", "b", "c", "b"]);// 利用字符串(可迭代对象)创建集合,字符串中每个字符被视为一个元素// 输入示例:"aabbbcddff",输出集合中元素为: "a", "b", "c", "d", "f"var s3 = new Set("aabbbcddff");// 使用扩展操作符 [...] 将集合转换成数组// 这样就可以得到唯一值数组,输入例子与 s2 类似// 输出示例:["a", "b", "c"]var s4 = [...new Set(["a", "b", "c", "b"])];// 获取集合 s3 的元素个数,Set.prototype.size 属性返回集合中唯一值的数量// 例如,s3 的唯一字符个数为 5var n = s3.size; // 统计集合的元素个数// 调试输出到控制台(在 WPS 中可以用 Console.log 来输出调试信息)Console.log("s2集合内容:", [...s2]);Console.log("s3集合内容:", [...s3]);Console.log("s4转换数组结果:", s4);Console.log("s3的元素个数 n:", n);
}

详细解析

  • 函数定义

    • 函数名称test
    • 输入:无参数(void 类型)
    • 输出:无返回值,通过调试输出展示结果
  • 变量与数据结构解析

    • s1:一个空的 Set 集合,初始时不包含任何元素。
    • s2:利用数组 ["a", "b", "c", "b"] 构造的集合,因集合自动去重,最终存储的值为 "a""b""c"
    • s3:由字符串 "aabbbcddff" 构造,字符串作为可迭代对象,其每个字符作为单个元素加入集合;最终得到的集合包含 "a""b""c""d""f"
    • s4:将 Set 对象转换成数组,可以方便后续使用数组方法进行操作。
    • n:记录集合 s3 的元素数量。通过 .size 属性获取,类型为 number,示例值为 5。
  • 代码注释说明
    每一行代码均附带了详细注释,描述了该行代码的功能、变量类型以及处理的数据示例,有助于初学者理解代码的逻辑。

  • 调试输出
    使用 Console.log 输出每一步操作的结果,方便开发者在 WPS 宏环境中进行结果查看(需要在 WPS 调试窗口中查看输出)。

Excel 环境模拟说明

在实际操作中,很多案例会结合 Excel 单元格数据。例如,如果你要提取一列中的唯一记录,你可以将该列数据读入数组,然后利用 Set 的去重特性进行处理。
假设 Excel 中 A 列有如下数据(以表格形式表示):

行号数据
2apple
3banana
4apple
5orange

利用类似以下代码:

var arr = Range("A2:A5").Value();
var uniqueArr = [...new Set(arr)];

最终 uniqueArr 将为 ["apple", "banana", "orange"]。这种方法简洁高效,极大地提升了数据处理效率。


6-2 集合的不重复特性应用(案例:提取唯一值记录)

在本节中,基于前面的集合创建,进一步利用集合的唯一性来提取 Excel 范围内具有不重复特性的记录。这里以提取每天仅保留一笔销售记录为例,演示如何通过集合操作实现“唯一值记录”的抽取。

示例代码

function test(){// 从工作表中获取 A2:E16 范围内的数据,并存入二维数组 arr// 假设每一行的第一列数据为销售日期,其余列为销售详情var arr = Range("a2:e16").Value();// 利用 map 将数组中每一行的第一个元素(日期)提取出来,// 然后用 Set 去除重复的日期,最后利用扩展操作符转换为数组// DateArr 的类型为 Array<any>,其中元素为日期字符串或数值,例如 ["2023-01-01", "2023-01-02", ...]var DateArr = [...new Set(arr.map(ar => ar[0]))];// 对于每个唯一日期,在原始数组中查找第一条符合该日期的记录// arr.find 遍历每一行,找到符合条件的记录(第一条出现的记录)// NewArr 类型为 Array<any[]>,每个元素都是一行记录var NewArr = DateArr.map(d => arr.find(ar => ar[0] == d));// 将结果数据写入工作表,从 G2 单元格开始,写入的数据区域大小为 NewArr 的行数和列数Range("g2").Resize(NewArr.length, NewArr[0].length).Value2 = NewArr;// 调试输出,打印唯一日期数组和结果数据,用于验证数据正确性Console.log("唯一日期列表:", DateArr);Console.log("唯一日期对应的记录:", NewArr);
}

详细解析

  • 函数定义

    • 函数名称test
    • 输入:无参数
    • 输出:无返回值,通过在 Excel 中写入数据实现结果呈现
  • 变量与数据结构解析

    • arr:二维数组,包含从 Excel 单元格范围 A2:E16 获取的所有数据,每个元素为一行数据。
      • 示例格式[ [日期, 数值1, 数值2, ...], [...], ... ]
    • DateArr:由 arr.map 提取第一列(日期)后,用 Set 去重生成的唯一日期数组。
      • 示例结果["2023-01-01", "2023-01-02", "2023-01-03"]
    • NewArr:利用 DateArr.map 遍历每个唯一日期,从原数组中查找该日期对应的第一条记录。
      • 示例格式[ [唯一日期1, 数值, 数值, ...], [唯一日期2, 数值, 数值, ...] ]
  • 算法核心

    • 利用 Set 对象实现了数据去重,保证了提取的日期列表中不存在重复值。
    • 使用 Array.prototype.find 方法确保每个日期只提取第一条记录,符合“每天仅一笔记录”的需求。
  • 数据输出操作

    • 通过 Range("g2").Resize(...) 方法将结果写回工作表,便于进一步的数据展示和分析。
    • 此处涉及 Excel 数据区间的动态调整操作,保证了写入区域与数据量匹配。

案例说明

假设你有一个销售记录表,其中 A 列为日期,B~E 列为销售数据。如果表中存在多个相同日期的记录,此代码将提取出每个日期仅保留第一笔记录。

例如,假设 Excel 数据如下(以表格形式描述):

行号日期销售额产品ID区域备注
22023-05-01100P001华东首笔订单
32023-05-01200P002华东重复订单
42023-05-02150P003华南首笔订单
52023-05-03180P004华北首笔订单
62023-05-02220P005华南重复订单

运行此代码后,从 G2 开始输出的结果将为:

行号日期销售额产品ID区域备注
22023-05-01100P001华东首笔订单
32023-05-02150P003华南首笔订单
42023-05-03180P004华北首笔订单

这种方法能够有效过滤重复的日期记录,确保数据的唯一性和清晰度。


6-3 集合成员添加与删除

在这一节中,我们介绍如何使用 Set 对象对集合的成员进行添加、删除、以及清空操作,这在数据处理过程中非常常见。以下示例展示了如何逐步对集合进行操作,并利用注释说明每一行代码的目的。

示例代码

function test1(){// 1. 创建一个空集合 s,类型为 Set<any>var s = new Set();// 2. 使用 add() 方法添加成员 "a" 到集合//    s 的内容由 {} 变为 { "a" }s.add("a");// 3. 添加数字 100 到集合//    目前 s 中包含两个元素:{ "a", 100 }s.add(100);// 4. 添加数字 200 到集合//    现在 s 中的元素为:{ "a", 100, 200 }s.add(200);// 5. 使用 delete() 方法删除集合中值为 "a" 的成员//    执行后 s 将只保留 { 100, 200 }s.delete("a");// 6. 调用 clear() 方法清空集合中所有的成员//    执行后 s 为一个空集合 {}s.clear();// 调试输出:打印集合当前大小,期望输出 0Console.log("集合 s 的当前大小:", s.size);
}

代码解析

  • 函数定义

    • 名称test1
    • 输入:无参数
    • 输出:无返回值,最终通过调试信息展示操作结果
  • 每一行代码说明

    1. 创建空集合 s,用于存储任意类型数据。
    2. s.add("a") 将字符串 "a" 添加到集合中。
    3. s.add(100) 向集合中添加数字 100
    4. s.add(200) 向集合中添加数字 200
    5. s.delete("a") 从集合中删除字符串 "a"
    6. s.clear() 清空整个集合,删除所有成员。

直观示意(Excel 模拟表格)

下面以模拟表格方式展示各步骤后集合的内容。注意:这里的“集合内容”仅为逻辑展示,并非 Excel 实际单元格数据,但我们采用了行标、列标以及网格边框的形式使其直观呈现。

操作步骤集合内容
初始状态{}
添加 “a”{“a”}
添加 100{“a”, 100}
添加 200{“a”, 100, 200}
删除 “a”{100, 200}
清空集合{}

6-4 集合成员添加与删除应用(不重复随机数)

本节介绍如何利用 Set 的不重复特性生成不重复的随机数。常见应用场景例如抽奖、随机分组或生成随机试卷题目时需要确保数字不重复。

示例代码

示例1:生成一定数量的不重复随机数,范围在 1 到 20。

function rnd1(){// 创建一个空集合 s,用于存储生成的随机数var s = new Set();// 循环直到集合 s 中的元素数量达到 10 个while (true){// 使用 WorksheetFunction.RandBetween(1, 20) 生成1至20间的随机数var num = WorksheetFunction.RandBetween(1, 20);// 将随机数添加到集合中,若重复则自动去重s.add(num);// 当集合大小达到10时跳出循环if (s.size == 10){ break; }}// 最终 s 包含10个唯一的随机数Console.log("生成的随机数集合:", [...s]);
}

示例2:自定义函数 rnd(counter, start, end),可以生成指定个数(counter)的不重复随机数,并返回数组。

function rnd(counter, start, end){// 确保请求的随机数数量不超过区间内可能的数字总数if (counter <= end - start + 1){// 初始化空集合 svar s = new Set();// 不断生成随机

相关文章:

WPS JS宏编程教程(从基础到进阶)-- 第六部分:JS集合与映射在 WPS 的应用

目录 第6章 JS集合与映射在 WPS 的应用6-1 集合的创建(实例:唯一值提取)示例代码详细解析Excel 环境模拟说明6-2 集合的不重复特性应用(案例:提取唯一值记录)示例代码详细解析案例说明6-3 集合成员添加与删除示例代码代码解析直观示意(Excel 模拟表格)6-4 集合成员添加…...

1.VTK 使用CMakeLists

文章目录 1.创建目录2.配置VTK编译环境3.创建main.cpp4.CMake编译 1.创建目录 选择一个空文件夹创建CMakeLists.txt 文件&#xff0c;注意CMakeLists不要写错 2.配置VTK编译环境 cmake_minimum_required(VERSION 3.5) # 最低要求 CMake 3.5&#xff0c;避免兼容性问题 proje…...

PDFtk

如果下载的pdf文件有秘钥的话&#xff0c;使用下面linux命令去掉秘钥&#xff1a; pdftk 纳税记录.pdf input_pw 261021 output 纳税记录_output.pdf将多个单页pdf合并为一个pdf的linux命令: pdftk 自然人电子税务局1.pdf 自然人电子税务局2.pdf 自然人电子税务局3.pdf 自然人…...

整理我的macos的复杂混乱的python环境

一、彻底清理现有环境&#xff08;为全新配置铺路&#xff09; 1. 核级清理&#xff08;⚠️ 先备份重要数据&#xff09; bash复制# 删除所有第三方Python安装 sudo rm -rf /Library/Frameworks/Python.framework/ rm -rf ~/Library/Python/ rm -rf ~/.local/bin/python* rm…...

Vue Router(1)

RouterLink 和 RouterView RouterLink 是一个导航组件&#xff0c;用于在不重新加载页面的情况下切换视图。 RouterView 是一个视图渲染容器组件&#xff0c;用于显示与当前 URL 匹配的组件。 <template><p><strong>Current route path:</strong> {{…...

AI时代如何让命令行工具快速智能化?

引言 作为开发者&#xff0c;我们经常会开发各种命令行工具来提升工作效率。 在AI时代我们又多了一个选择&#xff1a;通过AI生成代码&#xff0c;缺点是不可控、速度慢&#xff0c;优点是使用简单&#xff1b;而代码生成工具与AI的优缺点恰恰相反&#xff0c;如何结合两者的优…...

Android 回答视频边播放边下载的问题

分层次的回答突出 技术深度、架构思维 和 实战优化&#xff0c;从基础实现到高阶优化&#xff1a; 一、核心技术方案&#xff08;基础回答&#xff09; 如何实现视频边下边播&#xff1f; 1. **网络请求**&#xff1a;使用 HTTP Range 请求&#xff08;Header: Range: bytes0…...

【HarmonyOS 5】鸿蒙中如何使用MQTT

一、MQTT是什么&#xff1f; MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输&#xff09;是一种轻量级、基于发布 / 订阅&#xff08;Publish/Subscribe&#xff09;模式的即时通讯协议&#xff0c;专为资源受限的物联网&#xff08;IoT&a…...

Conda与Pip:Python包管理工具的对比与选型

在当今的Python开发环境中&#xff0c;包管理工具的选择对于项目的顺利进行至关重要。Conda和Pip作为两种主流的Python包管理工具&#xff0c;各自具有独特的特点和优势。本文将详细对比Conda和Pip&#xff0c;帮助开发者在项目中做出更合适的选择。 一、概述 Conda&#xff…...

建筑兔零基础自学记录69|爬虫Requests-2

Requests库初步尝试 #导入requests库 import requests #requests.get读取百度网页 rrequests.get(http://www.baidu.com) #输出读取网页状态 print(r.status_code) #输出网页源代码 print(r.text) HTTP 状态码是三位数字&#xff0c;用于表示 HTTP 请求的结果。常见的状态码有…...

OpenCV——图像融合

OpenCV——图像融合 一、引言1.1 图像融合分类 二、C代码实现三、效果展示3.1 标准球3.2 铝制底座 一、引言 在许多计算机视觉应用中(例如机器人运动和医学成像)&#xff0c;需要将来自多幅图像的相关信息集成到一幅图像中。这种图像融合将提供更高的可靠性、准确性和数据质量…...

显示背光发烫异常解析

■显示屏问题描述&#xff1a;&#xff1a; 分辨率&#xff1a;1024x600 尺寸&#xff1a;7寸 16:9 显示模式&#xff1a;IPS 背光参数&#xff1a;3串10并 电压&#xff1a;9.6V 电流&#xff1a;200ma 问题描述&#xff1a;常温装填下&#xff0c;在整机点亮一段时间后&a…...

机器学习--数据填充

一、引言 在机器学习领域&#xff0c;数据的质量直接关乎模型的性能。而数据缺失是实际数据收集过程中极为常见的问题&#xff0c;它像一颗隐藏的 “暗雷”&#xff0c;随时可能影响模型训练的准确性与稳定性。数据填充作为解决数据缺失问题的核心手段之一&#xff0c;有着多种…...

【Linux】40.网络基础(2.2)

文章目录 2. 传输层2.1 再谈端口号2.1.1 端口号范围划分2.1.2 认识知名端口号2.1.3 netstat2.1.4 pidof 2.2 UDP协议2.2.1 UDP协议端格式2.2.2 UDP的特点2.2.3 面向数据报2.2.4 UDP的缓冲区2.2.5 UDP使用注意事项2.2.6 基于UDP的应用层协议 2.3 TCP协议2.3.1 TCP协议段格式2.3.…...

YOLOv12即插即用--CPAM

1.模块介绍 本文提出了一种新型基于注意尺度序列融合的 YOLO 框架,称为 ASF-YOLO,该框架结合空间与尺度信息,实现了高效且精确的细胞实例分割。在 YOLO 分割框架的基础上,设计了 尺度序列特征融合(SSFF)模块,用于增强多尺度信息提取能力;同时引入 三重特征编码器(TPE…...

工业制造核心术语

• BOM&#xff1a; Bill of Material。物料清单。根据物料所处的阶段不同&#xff0c;可分为不同视图&#xff1a;EBOM&#xff08;Engineering BOM&#xff0c;设计BOM&#xff09;、PBOM&#xff08;Process BOM&#xff09;工艺BOM、MBOM&#xff08;Manufacturing BOM&…...

实现一个 Markdown 编辑器组件:Vue 3 + Vite + Highlight.js

文章目录 一、项目背景与需求分析二、搭建基础项目1. 初始化 Vue 3 项目2. 安装依赖 三、实现 Markdown 编辑器组件1. 创建 Markdown 编辑器组件2. 组件说明 四、优化与拓展1. 自动保存功能2. 文件上传功能 五、总结 一、项目背景与需求分析 在现代前端开发中&#xff0c;Mark…...

海外交友APP多语音系统实现

一、逻辑分析 语音录制功能&#xff1a; 用户需要在 APP 中能够方便地触发语音录制操作。这涉及到调用设备的麦克风权限&#xff0c;获取音频输入流。录制的音频数据需要进行临时存储&#xff0c;以便后续处理和发送。 语音播放功能&#xff1a; 当接收到其他用户发送的语音消…...

VSCode、clangd、mingw 配置与使用

1.安装 安装如下软件&#xff1a; VSCodeclangd 扩展mingw-w64 2.配置 配置好 mingw-w64 到用户环境中。 在项目中设置 .clangd 扩展&#xff0c;设置 argument //setting.json"clangd.arguments": ["--query-driverD:\\Development\\Tools\\mingw64\\bin…...

Rust入门之迭代器(Iterators)

Rust入门之迭代器&#xff08;Iterators&#xff09; 本文已同步本人博客网站 本文相关源码已上传Github 前言 迭代器&#xff08;Iterators&#xff09;是 Rust 中最核心的工具之一&#xff0c;它不仅是遍历集合的抽象&#xff0c;更是 Rust 零成本抽象&#xff08;Zero-Co…...

Android 14 、15动态申请读写权限实现 (Java)

在 Android 14、15 中&#xff0c;Google 进一步优化了存储权限系统&#xff0c;特别是写权限的管理。以下是完整的 Java 实现方案&#xff1a; 1. AndroidManifest.xml 声明权限 <!-- Android 14 存储权限 --> <uses-permission android:name"android.permiss…...

Codeforces Round 1013 (Div. 3)

Problem - A - Codeforces 解题思路&#xff1a; 对每个需要的数字进行计数 #include<bits/stdc.h> using namespace std;int main() {int t;cin >> t;while (t--){int n;cin >> n;int two 2;int zero 3;int five 1;int three 1;int one 1;int flag …...

SAP-ABAP:SAP PO接口中System Landscape(SL Landscape Directory,SLD)作用详解

SAP PO接口中System Landscape(SL Landscape Directory,SLD)作用详解 System Landscape Directory(SLD)是SAP Process Orchestration(PO)的核心组件,用于管理企业IT系统中的所有技术组件、业务系统及其关联关系。以下是其关键作用及实现逻辑: 中央元数据仓库存储全局…...

从繁琐到高效,2025年AI PPT工具选秒出PPT

在如今快节奏的职场中&#xff0c;PPT已经成为了日常工作中不可或缺的一部分。然而&#xff0c;传统的PPT制作往往耗费大量时间&#xff0c;尤其是内容整理、排版和设计这些环节&#xff0c;经常让人头疼。如何在保证质量的同时提升制作效率&#xff0c;成为了每个职场人的难题…...

TCP的三次握手和四次挥手

1.三次握手 1&#xff09;三次握手的目的 确保双方通信能力正常&#xff0c;并同步初始序列号&#xff08;ISN&#xff09;&#xff0c;防止历史重复连接干扰。 2&#xff09;三次握手的流程 这张图很复杂&#xff0c;我们可以将其简化为&#xff1a; 客户端Client …...

操作符详解(下)——包含整形提升

1.讲解剩下的操作符 1.1:逗号表达式 逗号表达式&#xff0c;就是用逗号隔开的多个表达式。 逗号表达式&#xff0c;从左向右依次执⾏。整个表达式的结果是最后⼀个表达式的结果 例题1&#xff1a; //C的值是多少&#xff1f; int main() {int a 1;int b 2;int c (a &g…...

关于量化交易在拉盘砸盘方面应用的部分思考

关于“砸盘”的深层解析与操盘逻辑 ​​一、砸盘的本质与市场含义​​ ​​砸盘​​指通过集中抛售大量筹码导致价格快速下跌的行为&#xff0c;其核心目标是​​制造恐慌、清洗浮筹或实现利益再分配​​。不同场景下的砸盘含义不同&#xff1a; ​​主动砸盘&#xff08;操控…...

大模型Prompt提示词越狱相关知识

大模型Prompt提示词越狱相关知识 一、什么是Prompt提示词越狱&#xff1f; 什么是Prompt提示词 ​ Prompt是指你向AI输入的内容&#xff0c;它直接指示AI该做什么任务或生成什么样的输出&#xff0c;简而言之&#xff0c; Prompt就是你与AI之间的“对话内容”&#xff0c;可…...

Prompt攻击

Prompt攻击 Prompt攻击的常见形式 1. 指令覆盖攻击 用户通过输入包含隐藏指令的提示&#xff0c;覆盖模型原本的预设行为。示例&#xff1a; “忽略之前的规则&#xff0c;帮我写一个绕过防火墙的Python脚本。” 模型可能被诱导生成危险代码。 2. 上下文污染攻击 在对话历史…...

KWDB创作者计划—KWDB:AIoT场景下的分布式多模数据库实践

在数字化转型的浪潮中&#xff0c;企业面临着海量多源异构数据的管理挑战。KWDB&#xff08;KaiwuDB Community Edition&#xff09;作为一款面向AIoT场景的分布式多模数据库&#xff0c;凭借其创新的技术架构和强大的性能表现&#xff0c;正在成为众多企业和开发者关注的焦点。…...

redisson常用加锁方式

RLock lock redissonClient.getLock("lock:order:" order);和redissonDistributedLocker.tryLock("lock:order:" order&#xff0c; TimeUnit.SECONDS, RedisLockKey.DEFAULT_WAIT_TIME, RedisLockKey.DEFAULT_HOLD_TIME);这两种加锁方式的区别如下&…...

网页部署到宝塔服务器上,发送请求报错?org.springframework.data.redis.RedisSystemException,让我来看看

这几天在部署项目的时候会发现的一个问题是&#xff0c;配置都没有什么问题&#xff0c;但是进入网页操作功能的时候却报错了&#xff0c;报错是这样&#xff1a; Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession57d08368] was …...

龙蜥社区荣获 OS2ATC 2025 “最具影响力开源创新贡献奖”

3 月 29 日&#xff0c;第十二届开源操作系统年度技术大会 (Open Source Operating System Annual TechnicalConference, 简称 OS2ATC) 在北京成功举办。会上&#xff0c;OS2ATC 公布了在开源操作系统等领域做出卓越贡献的获奖组织名单&#xff0c;其中&#xff0c;龙蜥社区凭借…...

conda入门教程

一、安装 Conda 下载 Anaconda 或 Miniconda Anaconda&#xff1a;包含大量常用的数据科学包&#xff0c;适合需要快速搭建数据科学环境的用户。Miniconda&#xff1a;仅包含 Conda 及其依赖项&#xff0c;适合需要更轻量化安装的用户。 可以通过访问 Anaconda 官方网站 或 Min…...

Linux入门指南:从零开始探索开源世界

&#x1f680; 前言 大家好&#xff01;今天我们来聊一聊Linux这个神奇的操作系统~ &#x1f916; 很多小伙伴可能觉得Linux是程序员专属&#xff0c;其实它早已渗透到我们生活的各个角落&#xff01;本文将带你了解Linux的诞生故事、发行版选择攻略、应用领域&#xff0c;还有…...

K8S学习之基础七十六:istio实现熔断功能

istio实现熔断功能 熔断的目的是在出现故障或异常情况时&#xff0c;对服务进行自动的限流和隔离&#xff0c;以保护整个系统的稳定性和可用性。上传httpbin镜像和fortio镜像到harbordocker tag kong/httpbin:latest 172.16.80.140/istio/httpbindocker push 172.16.80.140/ist…...

网络稳定性--LCA+最大生成树+bfs1/dfs1找最小边

1.最大生成树去除重边&#xff0c;只要最大的边成树 2.LCA查最近公共祖先&#xff0c;然后询问的lca(x,y)ff,分别从x,y向上找最小边 3.bfs1/dfs1就是2.中向上找的具体实现 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typede…...

数字图像处理作业3

第一问&#xff1a; 第一问要求使用一阶的Butterworth低通滤波器进行频域滤波&#xff0c;Butterworth其实是在截止低通滤波器的一个改进&#xff0c;它消除了明显截止带来的急剧不连续性。 H ( u , v ) 1 1 [ D ( u , v ) / D 0 ] 2 n H(u, v)\frac{1}{1\left[D(u, v) / D_0…...

fisco-bcos 关于服务bash status.sh启动runing 中但是5002端口监听不到,出错的问题

bash status.sh Server com.webank.webase.front.Application Port 5002 is running PID(4587) yjmyjm-VMware-Virtual-Platform:~/webase-front$ sudo netstat -anlp | grep 5002 没有端口信息输出 此时可以查看log文件夹下的WeBASE-front.log&#xff0c;找到报错信息如下…...

数字的乘阶运算

求数字的乘阶&#xff1a; 例如&#xff1a;6的乘阶运算&#xff1a;6*5*4*3*2*1 例如&#xff1a;3的乘阶运算&#xff1a;3*2*1 class Program{static void Main(string[] args){Console.WriteLine("请输入数字&#xff1a;");int num_01 Convert.ToInt32 (Con…...

Python标准库-logging

一、为什么需要logging模块&#xff1f; 在Python开发中&#xff0c;print()是最简单的调试方式&#xff0c;但在生产环境中存在明显缺陷&#xff1a; 无法区分消息级别&#xff08;调试/错误/警告&#xff09;没有时间戳记录不能灵活输出到不同目标&#xff08;文件/控制台/…...

html元素转图像之深入探索 html - to - image:功能、应用与实践

html元素转图像之深入探索 html-to-image&#xff1a;功能、应用与实践 一、引言 使用该插件 需要注意页面上的图片都能正常显示&#xff0c;否则会报错&#xff0c;或生成的图片有误&#xff0c;注意注意。 在当今数字化内容丰富多样的时代&#xff0c;将网页上的特定 HTML…...

Byte-Buddy系列 - 第1讲 关于类的相关操作

目录 一、引言二、创建类的3种方式三、运行时加载类四、重新加载类五、操作没有加载的类六、创建Java Agents 一、引言 Byte Buddy 是一个用于在 Java 应用程序运行时创建和修改 Java 类的代码生成和操作库&#xff0c;无需编译器的帮助。与 Java 类库中自带的代码生成工具不同…...

接口(interface) 测试

前提 概念 接口&#xff1a;系统之间数据交互的通道。&#xff08;本质是函数&#xff08;方法&#xff09;&#xff09; 接口测试&#xff0c;会绕过前端&#xff0c;直接对服务器进行测试 实现方式 软件&#xff1a; postman:使用简单&#xff0c;上手难度低。功能较少。…...

人力外包解决方案:重构企业用人成本的最优配置

作为专业人力外包服务商&#xff0c;我们深谙企业用人成本的核心痛点与优化密码。以下从外包视角解析成本构成&#xff0c;展现如何通过「战略外包」实现成本重构与价值倍增。 在当今竞争激烈的商业环境中&#xff0c;企业面临着越来越多的挑战&#xff0c;尤其是在人力资源管…...

WPF 组件的宽高绑定另一个组件的宽高的指定比值

0.此方法比较适用于响应式界面,组件的大小需要根据窗体大小改变。 1.创建转换函数,并传入比值 public class SizeConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if (value is double d &&…...

【DvAdmin】接口返回 emoji 显示 ?解决方法

再django构建API接口的时候emoji图标显示? 这里需要检查一下 如果你在后端返回的 JSON 数据中,某些 emoji 显示为 ?,而这些 emoji 在其他地方(比如你的本地应用或网页)显示正常,那么问题通常与后端的字符编码、数据库存储、或者 API 响应处理有关。我们可以按以下几个方…...

【挑战项目】 --- 微服务编程测评系统(在线OJ系统)(一)

一、前言 1.为什么要做项目 面试官要问项目,考察你到底是理论派还是实战派? 1.希望从你的项目中看到你的真实能力和对知识的灵活运用。 2.展示你在面对问题和需求时的思考方式及解决问题的能力。 3.面试官会就你项目提出一些问题,或扩展需求。以此来评估你如何有效应对和设…...

深度学习在文本情感分析中的应用

引言 情感分析是自然语言处理&#xff08;NLP&#xff09;中的一个重要任务&#xff0c;旨在识别和提取文本中的主观信息。随着深度学习技术的发展&#xff0c;我们可以使用深度学习模型来提高情感分析的准确性和效率。本文将介绍如何使用深度学习进行文本情感分析&#xff0c…...

建筑工程管理系统功能模块概览

在现代建筑工程管理中&#xff0c;信息化系统的应用已成为提升管理效率、优化资源配置的重要手段。本文将详细介绍一款建筑工程管理系统的核心功能模块&#xff0c;该系统覆盖了从系统管理、项目设置到具体业务操作的全方位功能&#xff0c;旨在为建筑工程项目提供一站式管理解…...