前端基础函数算法整理应用(sort+reduce+date+双重for循环)
文章目录
- 基础函数算法
- reduce 函数算法
- sort 函数算法
- 时间排序
- 1. 对日期字符串数组进行排序
- 2. 对包含日期对象的数组进行排序
- 3. 对包含时间戳的数组进行排序
- 4. 对包含日期时间信息的对象数组进行排序
基础函数算法
一、排序算法
- 冒泡排序(Bubble Sort)
- 原理:
- 比较相邻的元素。如果第一个比第二个大(升序),就交换它们两个。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
- 代码示例:
- 原理:
function bubbleSort(arr) {var len = arr.length;for (var i = 0; i < len - 1; i++) {for (var j = 0; j < len - 1 - i; j++) {if (arr[j] > arr[j + 1]) {// 交换位置var temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}return arr;
}
var arr = [5, 4, 3, 2, 1];
console.log(bubbleSort(arr));
- 选择排序(Selection Sort)
- 原理:
- 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
- 然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
- 以此类推,直到所有元素均排序完毕。
- 代码示例:
- 原理:
function selectionSort(arr) {var len = arr.length;for (var i = 0; i < len - 1; i++) {var minIndex = i;for (var j = i + 1; j < len; j++) {if (arr[j] < arr[minIndex]) {minIndex = j;}}if (minIndex!== i) {var temp = arr[i];arr[i] = arr[minIndex];arr[minIndex] = temp;}}return arr;
}
var arr = [5, 4, 3, 2, 1];
console.log(selectionSort(arr));
- 插入排序(Insertion Sort)
- 原理:
- 从第二个元素开始(索引为1),将当前元素与前面已排序的元素进行比较。
- 如果当前元素小于前面的元素,则将前面的元素后移一位,然后继续向前比较,直到找到合适的位置插入当前元素。
- 重复这个过程,直到所有元素都插入到正确的位置。
- 代码示例:
- 原理:
function insertionSort(arr) {for (var i = 1; i < arr.length; i++) {var current = arr[i];var j = i - 1;while (j >= 0 && arr[j] > current) {arr[j + 1] = arr[j];j--;}arr[j + 1] = current;}return arr;
}
var arr = [5, 4, 3, 2, 1];
console.log(insertionSort(arr));
二、搜索算法
- 线性搜索(Linear Search)
- 原理:
- 从数组的第一个元素开始,逐个检查每个元素,直到找到目标元素或者遍历完整个数组。
- 代码示例:
- 原理:
function linearSearch(arr, target) {for (var i = 0; i < arr.length; i++) {if (arr[i] === target) {return i;}}return -1;
}
var arr = [1, 3, 5, 7, 9];
console.log(linearSearch(arr, 5));
- 二分搜索(Binary Search,要求数组是有序的)
- 原理:
- 首先,比较目标元素和数组中间元素的大小。
- 如果目标元素等于中间元素,则搜索结束。
- 如果目标元素小于中间元素,则在数组的左半部分继续搜索。
- 如果目标元素大于中间元素,则在数组的右半部分继续搜索。
- 重复这个过程,直到找到目标元素或者确定目标元素不存在。
- 代码示例:
- 原理:
function binarySearch(arr, target) {var low = 0;var high = arr.length - 1;while (low <= high) {var mid = Math.floor((low + high)/2);if (arr[mid] === target) {return mid;} else if (arr[mid] < target) {low = mid + 1;} else {high = mid - 1;}}return -1;
}
var arr = [1, 3, 5, 7, 9];
console.log(binarySearch(arr, 5));
三、字符串操作算法
- 字符串反转(String Reversal)
- 原理:
- 可以将字符串转换为数组,然后使用数组的反转方法,最后再将数组转换回字符串。或者通过逐个字符交换的方式来反转字符串。
- 代码示例(使用数组方法):
- 原理:
function reverseString(str) {return str.split("").reverse().join("");
}
console.log(reverseString("hello"));
- 代码示例(逐个交换):
function reverseString2(str) {var newStr = "";for (var i = str.length - 1; i >= 0; i--) {newStr += str[i];}return newStr;
}
console.log(reverseString2("hello"));
- 字符串匹配(简单的模式匹配,例如判断一个字符串是否包含另一个字符串)
- 原理:
- 可以使用JavaScript原生的
indexOf
方法来检查一个字符串是否包含另一个字符串。如果indexOf
返回的值大于等于0,则表示包含。
- 可以使用JavaScript原生的
- 代码示例:
- 原理:
function containsString(str, subStr) {return str.indexOf(subStr) >= 0;
}
console.log(containsString("hello world", "world"));
reduce 函数算法
- 默认排序(字符串Unicode码点排序)
- 原理:
- 当
sort
方法没有传入比较函数时,它会将数组元素转换为字符串,并按照Unicode码点顺序对这些字符串进行排序。对于数字数组,这种排序方式可能不符合预期。例如,[10, 2, 30]
排序后可能得到[10, 2, 30]
,因为在Unicode码点顺序下,"10"
会排在"2"
之前。
- 当
- 代码示例:
- 原理:
const arr = ["apple", "banana", "cherry"];
arr.sort();
console.log(arr);
- 这里
arr
数组中的字符串元素会按照字典序(即字符的Unicode码点顺序)进行排序,结果为["apple", "banana", "cherry"]
。
- 数字排序
- 原理:
- 为了正确地对数字数组进行排序,需要传入一个比较函数。比较函数接受两个参数
a
和b
,如果a
小于b
,则返回一个小于0
的值;如果a
等于b
,则返回0
;如果a
大于b
,则返回一个大于0
的值。对于升序排序,通常返回a - b
。
- 为了正确地对数字数组进行排序,需要传入一个比较函数。比较函数接受两个参数
- 代码示例:
- 原理:
const numbers = [10, 2, 30];
numbers.sort((a, b) => a - b);
console.log(numbers);
- 在这个例子中,比较函数
(a, b) => a - b
会计算a
和b
的差值。当a
小于b
时,a - b
小于0
,数组会将a
排在b
之前,最终得到升序排列的数组[2, 10, 30]
。
- 降序排序
- 原理:
- 与升序排序类似,只是比较函数返回
b - a
,这样当b
大于a
时,返回值大于0
,b
就会排在a
之前。
- 与升序排序类似,只是比较函数返回
- 代码示例:
- 原理:
const numbers = [10, 2, 30];
numbers.sort((a, b) => b - a);
console.log(numbers);
- 这里的比较函数
(a, b) => b - a
使得数组按照降序排列,结果为[30, 10, 2]
。
- 对象数组排序
- 原理:
- 对于对象数组,可以根据对象的某个属性值进行排序。比较函数会根据对象属性的值来比较两个对象。
- 代码示例:
- 原理:
const people = [{ name: "Alice", age: 25 },{ name: "Bob", age: 30 },{ name: "Charlie", age: 20 }
];
// 根据年龄升序排序
people.sort((a, b) => a.age - b.age);
console.log(people);
- 在这个对象数组中,比较函数
(a, b) => a.age - b.age
根据对象的age
属性进行比较。当a.age
小于b.age
时,a
会排在b
之前,最终得到按照年龄升序排列的对象数组[{"name": "Charlie", "age": 20}, {"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}]
。
- 复杂条件排序(多个属性排序)
- 原理:
- 有时候需要根据多个属性对对象数组进行排序。可以在比较函数中先根据一个属性进行比较,如果该属性值相等,再根据另一个属性进行比较。
- 代码示例:
- 原理:
const students = [{ name: "Alice", grade: "A", age: 20 },{ name: "Bob", grade: "B", age: 22 },{ name: "Charlie", grade: "A", age: 21 }
];
// 先根据成绩升序排序,如果成绩相同,再根据年龄升序排序
students.sort((a, b) => {if (a.grade === b.grade) {return a.age - b.age;}if (a.grade < b.grade) {return -1;}return 1;
});
console.log(students);
- 这个比较函数首先比较对象的
grade
属性。如果grade
属性相同,就比较age
属性。最终得到按照成绩升序排列,成绩相同则按照年龄升序排列的对象数组[{"name": "Bob", "grade": "B", "age": 22}, {"name": "Alice", "grade": "A", "age": 20}, {"name": "Charlie", "grade": "A", "age": 21}]
。
sort 函数算法
- 默认排序(字符串Unicode码点排序)
- 原理:
- 当
sort
方法没有传入比较函数时,它会将数组元素转换为字符串,并按照Unicode码点顺序对这些字符串进行排序。对于数字数组,这种排序方式可能不符合预期。例如,[10, 2, 30]
排序后可能得到[10, 2, 30]
,因为在Unicode码点顺序下,"10"
会排在"2"
之前。
- 当
- 代码示例:
- 原理:
const arr = ["apple", "banana", "cherry"];
arr.sort();
console.log(arr);
- 这里
arr
数组中的字符串元素会按照字典序(即字符的Unicode码点顺序)进行排序,结果为["apple", "banana", "cherry"]
。
- 数字排序
- 原理:
- 为了正确地对数字数组进行排序,需要传入一个比较函数。比较函数接受两个参数
a
和b
,如果a
小于b
,则返回一个小于0
的值;如果a
等于b
,则返回0
;如果a
大于b
,则返回一个大于0
的值。对于升序排序,通常返回a - b
。
- 为了正确地对数字数组进行排序,需要传入一个比较函数。比较函数接受两个参数
- 代码示例:
- 原理:
const numbers = [10, 2, 30];
numbers.sort((a, b) => a - b);
console.log(numbers);
- 在这个例子中,比较函数
(a, b) => a - b
会计算a
和b
的差值。当a
小于b
时,a - b
小于0
,数组会将a
排在b
之前,最终得到升序排列的数组[2, 10, 30]
。
- 降序排序
- 原理:
- 与升序排序类似,只是比较函数返回
b - a
,这样当b
大于a
时,返回值大于0
,b
就会排在a
之前。
- 与升序排序类似,只是比较函数返回
- 代码示例:
- 原理:
const numbers = [10, 2, 30];
numbers.sort((a, b) => b - a);
console.log(numbers);
- 这里的比较函数
(a, b) => b - a
使得数组按照降序排列,结果为[30, 10, 2]
。
- 对象数组排序
- 原理:
- 对于对象数组,可以根据对象的某个属性值进行排序。比较函数会根据对象属性的值来比较两个对象。
- 代码示例:
- 原理:
const people = [{ name: "Alice", age: 25 },{ name: "Bob", age: 30 },{ name: "Charlie", age: 20 }
];
// 根据年龄升序排序
people.sort((a, b) => a.age - b.age);
console.log(people);
- 在这个对象数组中,比较函数
(a, b) => a.age - b.age
根据对象的age
属性进行比较。当a.age
小于b.age
时,a
会排在b
之前,最终得到按照年龄升序排列的对象数组[{"name": "Charlie", "age": 20}, {"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}]
。
- 复杂条件排序(多个属性排序)
- 原理:
- 有时候需要根据多个属性对对象数组进行排序。可以在比较函数中先根据一个属性进行比较,如果该属性值相等,再根据另一个属性进行比较。
- 代码示例:
- 原理:
const students = [{ name: "Alice", grade: "A", age: 20 },{ name: "Bob", grade: "B", age: 22 },{ name: "Charlie", grade: "A", age: 21 }
];
// 先根据成绩升序排序,如果成绩相同,再根据年龄升序排序
students.sort((a, b) => {if (a.grade === b.grade) {return a.age - b.age;}if (a.grade < b.grade) {return -1;}return 1;
});
console.log(students);
- 这个比较函数首先比较对象的
grade
属性。如果grade
属性相同,就比较age
属性。最终得到按照成绩升序排列,成绩相同则按照年龄升序排列的对象数组[{"name": "Bob", "grade": "B", "age": 22}, {"name": "Alice", "grade": "A", "age": 20}, {"name": "Charlie", "grade": "A", "age": 21}]
。
时间排序
在JavaScript中,如果你有一个包含时间信息(如日期)的数组,想要对其进行排序,可以使用Array.prototype.sort
方法,并结合Date
对象来实现。以下是几种常见的基于时间的排序场景及实现方法:
1. 对日期字符串数组进行排序
假设数组中的元素是日期字符串,格式为YYYY - MM - DD
。
// 日期字符串数组
const dateStrings = ["2023-10-05", "2023-09-15", "2023-11-20"];// 排序函数
dateStrings.sort((a, b) => {return new Date(a) - new Date(b);
});console.log(dateStrings);
在上述代码中:
sort
方法接受一个比较函数,该函数接收两个参数a
和b
。new Date(a)
和new Date(b)
将日期字符串转换为Date
对象。- 通过
new Date(a) - new Date(b)
计算两个日期对象的时间差,如果a
的日期早于b
,则返回一个负数,sort
方法会将a
排在b
之前;如果时间差为0,则保持原顺序;如果a
的日期晚于b
,则返回一个正数,sort
方法会将a
排在b
之后。
2. 对包含日期对象的数组进行排序
假设数组中直接存储的是Date
对象。
// 日期对象数组
const dates = [new Date("2023-10-05"),new Date("2023-09-15"),new Date("2023-11-20")
];// 排序函数
dates.sort((a, b) => {return a - b;
});console.log(dates.map(date => date.toISOString()));
这里,Date
对象之间可以直接进行减法运算,其结果是两个日期之间相差的毫秒数。同样,比较函数根据这个差值来确定元素的顺序。
3. 对包含时间戳的数组进行排序
如果数组中的元素是时间戳(从1970年1月1日00:00:00 UTC开始到指定时间的毫秒数)。
// 时间戳数组
const timestamps = [1696502400000, 1694774400000, 1699286400000];// 排序函数
timestamps.sort((a, b) => {return a - b;
});console.log(timestamps.map(timestamp => new Date(timestamp).toISOString()));
时间戳本身就是数字,直接相减就可以得到正确的比较结果,sort
方法会根据这个结果对数组进行排序。
4. 对包含日期时间信息的对象数组进行排序
假设数组中的对象包含日期时间信息,例如:
const events = [{ name: 'Event1', date: '2023-10-05' },{ name: 'Event2', date: '2023-09-15' },{ name: 'Event3', date: '2023-11-20' }
];events.sort((a, b) => {return new Date(a.date) - new Date(b.date);
});console.log(events);
在这个例子中,比较函数从对象中提取日期字符串,将其转换为Date
对象后进行比较,从而实现对对象数组的排序。
相关文章:
前端基础函数算法整理应用(sort+reduce+date+双重for循环)
文章目录 基础函数算法reduce 函数算法sort 函数算法时间排序1. 对日期字符串数组进行排序2. 对包含日期对象的数组进行排序3. 对包含时间戳的数组进行排序4. 对包含日期时间信息的对象数组进行排序 基础函数算法 一、排序算法 冒泡排序(Bubble Sort) …...
web系统漏洞攻击靶场
摘 要 互联网极速发展的同时,也会带来一些安全性的风险,一些不为人知的安全问题也逐渐暴露出来。近年来,媒体不断披露了许多网络安全事故,许多网络应用程序被黑客攻击,导致内部数据外泄,人们开始认识到网络…...
苍穹外卖-day07(Spring Cache 购物车业务逻辑)
内容 缓存菜品缓存套餐添加购物车查看购物车清空购物车 功能实现:缓存商品、购物车 效果图: 1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增…...
win10 VS2019上libtorch库配置过程
win10 VS2019上libtorch库配置过程 0 引言1 获取libtorch2 在VS上配置使用libtorch库3 结语 0 引言 💻💻AI一下💻💻 libtorch库是一个用于深度学习的C库,是PyTorch的官方C前端。它提供了用于构建和训练深度学习模…...
git 常用命令和本地合并解决冲突
目录 一、常用命令 二、本地可视化合并分支解决冲突 一、常用命令 最近,使用mac电脑,无法直接使用小乌龟进行可视化操作,现在记录一些常用命令。 拉取: git clone <git url> 仅拉起某个单独分支: git clo…...
Elasticsearch 创建索引 Mapping映射属性 索引库操作 增删改查
Mapping Type映射属性 mapping是对索引库中文档的约束,有以下类型。 text:用于分析和全文搜索,通常适用于长文本字段。keyword:用于精确匹配,不会进行分析,适用于标签、ID 等精确匹配场景。integer、long…...
Objective-C语言的数据结构
Objective-C语言中的数据结构 Objective-C是一种面向对象的编程语言,其在苹果公司的软件开发中得到了广泛应用。它主要用于开发macOS和iOS应用程序。虽然Objective-C有许多丰富的特性,但在程序设计中,数据结构仍然是构建任何应用程序的基础。…...
智能水文:ChatGPT等大语言模型如何提升水资源分析和模型优化的效率
大语言模型与水文水资源领域的融合具有多种具体应用,以下是一些主要的应用实例: 1、时间序列水文数据自动化处理及机器学习模型: ●自动分析流量或降雨量的异常值 ●参数估计,例如PIII型曲线的参数 ●自动分析降雨频率及重现期 ●…...
ETL的工作原理
ETL的工作原理 什么是ETL_云计算主题库-阿里云 ETL的工作原理可以分为三个主要的步骤:Extract(提取)、Transform(转换)、Load(加载)。 工作步骤 描述 Extract (提取)…...
黑马头条平台管理实战
黑马头条 08平台管理 1.开始准备和开发思路1.1.开发网关1.2编写admin-gateway 代码 2.开发登录微服务2.1编写登录微服务 3.频道管理4.敏感词管理5.用户认证审核6.自媒体文章人工审核99. 最后开发中碰到的问题汇总1.关于nacos 配置 问题2.在开发频道管理新增频道后端无法接收到前…...
电池管理系统(BMS)架构详细解析:原理与器件选型指南
BMS(电池管理系统)架构详细讲解 从你提供的BMS(Battery Management System)架构图来看,主要涉及到电池监控模块、通信模块、功率控制模块等部分。下面我将详细讲解该架构的各个功能模块及其工作原理。 1. 电池管理核…...
SpringBoot环境和Maven配置
SpringBoot环境和Maven配置 1. 环境准备2. Maven2.1 什么是Maven2.2 为什么要学 Maven2.3 创建一个 Maven项目2.4 Maven核心功能2.4.1 项目构建2.4.2 依赖管理2.4.3 Maven Help插件 2.5 Maven 仓库2.5.1本地仓库2.5.2 中央仓库2.5.3 私有服务器, 也称为私服 2.6 Maven设置国内源…...
lambda用法及其原理
目录 lambda形式lambda用法1.sort降序2.swap3.捕捉列表 习题解题 lambda形式 [capture-list](parameters)->return type{function boby}[capture-list]:[捕捉列表]用于捕捉函数外的参数,可以为空,但不能省略;(parameters) &am…...
Postgresql源码(139)vim直接修改postgresql表文件的简单实例
1 前言 PG可以用pageinspect方便的读取查看表文件。本篇介绍一种用vim查看、编辑的方法,案例比较简单,主要分享原理。 修改表文件和controlfile是非常危险的行为,请不要在生产尝试。 2 用例 简化问题,用简单编码的数据类型。 d…...
Lianwei 安全周报|2025.1.2
以下是本周「Lianwei周报」,我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件,保证大家不错过本周的每一个重点! 政策/标准/指南最新动态 01 国家数据局等五部门印发《关于促进企业数据资源开发利用的意见》 为充分释放企业…...
Vue3-跨层组件通信Provide/Inject机制详解
Vue 3 中的 Provide 和 Inject 机制是专为跨层级传递数据而设计的,适用于祖先组件和后代组件之间的通信。与props 和 emits 不同,Provide/Inject 可以跨越多个层级进行数据传递,而不需要逐层传递。 1. Provide provide 是一个在祖先组件中提…...
springcloud 介绍
Spring Cloud是一个基于Spring Boot的微服务架构解决方案集合,它提供了一套完整的工具集,用于快速构建分布式系统。在Spring Cloud的架构中,服务被拆分为一系列小型、自治的微服务,每个服务运行在其独立的进程中,并通过…...
css预处理器sass
在前端开发的世界中,CSS 是构建网页样式的基础。然而,随着项目规模的增大,纯 CSS 的编写和维护往往会变得复杂而繁琐。为了解决这些痛点,Sass(Syntactically Awesome Style Sheets)应运而生。Sass 是一种 C…...
匠人天工Ai浮雕网站创新发布了ZBrush插件,提效500%,为AI+数字雕刻行业带来新的活力
2025年1月6日,杭州——杭州仓颉造梦数字科技公司旗下产品匠人天工近日宣布推出一款创新的ZBrush插件,旨在为AI数字雕刻行业带来前所未有的效率提升。该插件通过一系列智能化功能,大幅简化了数字雕刻的建模流程,使建模效率提高了50…...
解决 Pangolin 版本不兼容导致的编译错误
在使用 Pangolin 库时,有时候会遇到由于版本不兼容而导致的编译错误。本文将通过一个具体的错误案例,展示如何识别和解决这种问题。 问题描述 在编译时,遇到如下编译错误: /usr/local/include/pangolin/gl/glsl.hpp: In member…...
day01_ Java概述丶开发环境的搭建丶常用DOS命令
编程常识 什么是编程? 所谓编程,就是人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。 编程语言的发展历程 第一代:机器语言 ,机器语言由数字组成所有指令。计算器解析运行速度,最快…...
进程间通信——网络通信——UDP
进程间通信(分类):网络通信、无名管道、有名管道、信号、消息队列、共享内存、信号量集 OSI七层模型:(理论模型) 应用层 : 要传输的数据信息,如文件传输,电子邮件等 表示层 : 数…...
(六)vForm 动态表单(数据量大,下拉选卡顿问题)
系列文章目录 (一)vForm 动态表单设计器之使用 (二)vForm 动态表单设计器之下拉、选择 (三)vForm 动态表单解决下拉框无数据显示id问题 (四)vForm 动态表单自定义组件、属性 (五)vForm 动态表单文件上传、下载 文章目录 目录 前言 一、组件改造 1.添加分页所需参…...
asp.net core mvc的 ViewBag , ViewData , Module ,TempData
在 ASP.NET MVC 和 ASP.NET Core MVC 中,ViewBag 和 ViewData 是两种用于将数据从控制器传递到视图(View)的常用方法。它们都允许控制器将动态数据传递给视图,但它们的实现方式有所不同。关于 Module,它通常指的是某种…...
C#语言的软件开发工具
C#语言的软件开发工具 C#语言作为一种现代化的编程语言,凭借其强大的功能和丰富的生态系统,在软件开发领域得到了广泛的应用。随着C#语言的发展,越来越多的开发工具应运而生。本文将详细介绍C#语言常用的开发工具,包括集成开发环…...
iOS - AutoreleasePool
1. 基本数据结构 // AutoreleasePool 的基本结构 struct AutoreleasePoolPage {static pthread_key_t const key AUTORELEASE_POOL_KEY;magic_t const magic;id *next; // 指向下一个可存放对象的地址pthread_t const thread; // 所属线程AutoreleasePoolPage …...
数据仓库建设方案和经验总结
在做数据集成的过程中,往往第二步的需求就是建设数仓由于数据分散在不同的存储环境或数据库中,对于新业务需求的开发需要人工先从不同的数据库中同步、集中、合并等处理,造成资源和人力的浪费。同时,目前的系统架构,无…...
该单据从未生成交易分录
经常听到采购说,采购匹配明细表中没有xx料号的记录,没有xx供应商的记录。它们用这个报表来与供应商对账的。每每以此为借口拖延着货款不付。没有记录出来,原因各种。之前没有记录下来,想不起来。今天重新分析发现其中一个原因&…...
Flink DataSet API
文章目录 DataSet SourcesDataSet TransformationDataSet Sink序列化器样例一:读 csv 文件生成 csv 文件样例二:读 starrocks 写 starrocks样例三:DataSet、Table Sql 处理后写入 StarRocksDataSet<Row> 遍历遇到的坑 分类:…...
Bash Shell的操作环境
目录 1、路径与指令搜寻顺序 2、bash的进站(开机)与欢迎信息:/etc/issue,/etc/motd (1)/etc/issue (2)/etc/motd 3、bash的环境配置文件 (1)login与non-…...
web自动化测试环境搭建(python环境下selenium)
环境搭建步骤 安装selenium pip install selenium 安装浏览器 安装浏览器驱动 谷歌浏览器:chromdriver.exe ie浏览器:ieserverdriver.exe FireFox浏览器:geckodriver.exe 特别注意⚠️:下载驱动版本必须与浏览器版本一致 下载地址 淘宝镜像࿱…...
解决cursor AI编辑器控制台console中文乱码
chcp 查看当前控制台编码 936 : gbk编码 控制台输入:chcp 65001 设置为utf8...
fail api scope is not declared in the privacy agreement微信小程序uniapp 解决录音无法播放、授权
已解决 fail api scope is not declared in the privacy agreement微信小程序uniapp 解决录音无法播放、授权 没有声明内容协议导致的 微信公众平台:https://mp.weixin.qq.com/【1.左下角的-移动过去后会出现 “帐号设置”】 【2.基本设置->服务内容声明->修…...
ArkTs 状态管理装饰器
在构建页面多为静态界面,如果希望构建一个动态的,有交互的界面,就需要引入‘状态’的概念。 一.基本概念 1.状态变量:被状态装饰器装饰的变量,状态变量值的改变或引起UI的渲染更新 2.常规变量:没有被状态…...
Linux CentOS 7系统如何修改panel 重新打开最小化的界面/软件/程序
CentOS 7系统下,部分用户可能一开始打开界面没有类似Windows的下方菜单栏,只有一个浮动的panel。一旦打开软件,然后点击最小化后,找不到重新打开的方法。 右键panel,点击Add New Items… 选择以下三个基本就可以了&am…...
猫的眼睛有几种颜色?
在猫咪神秘而迷人的世界里,它们的眼睛犹如璀璨星辰,闪烁着各异的光芒,颜色丰富多样,令人着迷。 猫眼睛的颜色,粗略一数,常见的便有黄色、蓝色、绿色、棕色,还有那神秘的异瞳。这些色彩并非无端生…...
200道Java面试题(2025)
Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java …...
ros2笔记-2.5.3 多线程与回调函数
本节体验下多线程。 python示例 在src/demo_python_pkg/demo_python_pkg/下新建文件,learn_thread.py import threading import requestsclass Download:def download(self,url,callback):print(f线程:{threading.get_ident()} 开始下载:{…...
openwrt nginx UCI配置过程
openwrt 中nginx有2种配置方法,uci nginx uci /etc/config/nginx 如下: option uci_enable true‘ 如果是true就是使用UCI配置,如果 是false,就要使用/etc/nginx/nginx.conf,一般不要修改。 如果用UCI,其…...
【数据结构】双向循环链表的使用
双向循环链表的使用 1.双向循环链表节点设计2.初始化双向循环链表-->定义结构体变量 创建头节点(1)示例代码:(2)图示 3.双向循环链表节点头插(1)示例代码:(2ÿ…...
《Python游戏编程入门》注-第9章8
2 游戏信息的显示 在游戏窗口的上部会显示游戏分数、游戏关卡、剩余砖块数以及剩余小球数等信息,如图12所示。 图12 游戏信息显示 使用如图13所示的代码实现以上功能。 图13 显示游戏信息的代码 其中,print_text()函数MyLibrary....
起重机检测数据集VOC+YOLO格式2316张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2316 标注数量(xml文件个数):2316 标注数量(txt文件个数):2316 …...
20250106面试
rabbitmq如何保证消息不丢失 my: 持久化,包括消息持久化和队列持久化,重启不丢失。持久化到磁盘中的。 消息确认 死信队列:消费失败(业务异常/未确认,重试后,会放死信队列)&…...
【大数据】(选修)实验4 安装熟悉HBase数据库并实践
实验4 安装熟悉HBase数据库并实践 1、实验目的 (1)理解HBase在Hadoop体系结构中的角色; (2)熟练使用HBase操作常用的Shell命令; (3)熟悉HBase操作常用的Java API。 2、实验平台 操作系统:Linux Hadoop版本:2.6.0或以上版本 HBase版本:1.1.2或以上版本 JDK版…...
使用Python类库pandas操作Excel表格
Date: 2025.01.02 20:33:30 author: lijianzhan 简述:pandas 是处理 Excel 文件的强大工具,它提供了简单易用的接口来读取、操作和写入 Excel 数据。以下是使用 pandas 处理 Excel 文件的详细指南,包括常见操作和示例代码。 安装依赖,pandas …...
【银河麒麟高级服务器操作系统】服务器异常重启故障分析及处理建议
了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://document.kylinos.cn 服务器环境以及配置 系统环境 物理机/虚拟机/云…...
香橙派5plus单独编译并安装linux内核无法启动的原因分析与解决记录
1 说明 我依照官方手册编译单独编译linux内核,安装后重启出现内核启动失败的问题,编译和安装步骤如下:# 1. 克隆源码 git clone --depth1 -b orange-pi-6.1-rk35xx https://github.com/orangepi-xunlong/linux-orangepi# 2 配置源码 make rockchip_linu…...
iOS - 消息机制
1. 基本数据结构 // 方法结构 struct method_t {SEL name; // 方法名const char *types; // 类型编码IMP imp; // 方法实现 };// 类结构 struct objc_class {Class isa;Class superclass;cache_t cache; // 方法缓存class_data_bits_t bits; // 类的方法…...
ChatGPT 是通用人工智能吗
ChatGPT 目前并不是通用人工智能(AGI, Artificial General Intelligence)。它是一种专用人工智能(Narrow AI),具体来说是一种基于大规模语言模型(如 GPT-4)的生成式人工智能,专注于处…...
Bash语言的函数实现
Bash语言的函数实现 引言 Bash(Bourne Again SHell)是一种在Unix和类Unix系统中广泛使用的命令行解释器。它不仅作为命令行工具使用,同时也被广泛应用于自动化脚本的编写。通过Bash,用户可以创建复杂的脚本,以执行一…...