JavaScript--Array
文章目录
- 数组
- 基础数组
- Array.concat()合并数组
- Array.indexOf()
- Array.isArray()
- Array.join()连接
- Array.pop()删除
- Array.push()添加
- Array.shift()删除
- Array.unshift()添加
- Array.slice()切割
- 进阶数组
数组
学习方法看三部分
参数、返回值、是否会改变原来的变量
基础数组
Array.concat()合并数组
1、参数:要合并的数组 可以传一个以上的参数
2、返回值:合并后的结果 返回的是一个新数组
3、是否会改变原来的变量:不会
//Array.concat()方法,合并数组var arr = ['我的','名字','是','YH'];var arr1 = [1 , 2 , 3 , 4 , 5];var arr2 = [11 , 22 , 33];console.log(arr.concat(arr1));//['我的', '名字', '是', 'YH', 1, 2, 3, 4, 5]console.log(arr);//['我的', '名字', '是', 'YH']console.log(arr.concat(arr1,arr2));//['我的', '名字', '是', 'YH', 1, 2, 3, 4, 5, 11, 22, 33]
Array.indexOf()
1、参数:
两个参数
第一个参数代表,要找的元素
第二个参数代表,查找的起始下标
如果是负数,从末端开始计数,但是查找顺序还是从左到右
2、返回值:返回下标值,不存在会返回-1
3、是否会改变原来的变量:不会
//Array.indexOf()方法,查找数组对应内容的下标var arr = ['我的','名字','是','YH'];var plants = ['西红柿', '黄瓜', '芹菜', '豆角', '土豆','黄瓜'];console.log(arr.indexOf('名字'));//1console.log(arr.indexOf(' '));//-1console.log(plants.indexOf('黄瓜'));//1console.log(plants.indexOf('黄瓜',-6));//1console.log(plants.indexOf('黄瓜',2));//5console.log(plants.indexOf('黄瓜',-3));//5
Array.isArray()
1、参数:判断的对象
2、返回值:Boolean值
3、是否会改变原来的变量:不会
//Array.isArray()方法,判断是否是数组console.log(Array.isArray('123'));//falseconsole.log(Array.isArray(123));//falseconsole.log(Array.isArray([]));//true
Array.join()连接
1、参数:需要添加的分割符号
2、返回值:添加后的字符串
3、是否会改变原来的变量:不会
//Array.join()方法,数组元素之间添加分割符号进行连接var arr = ['我的','名字','是','YH'];var arr1 = [1 , 2 , 3 , 4 , 5];console.log(typeof(arr.join('')));//stringconsole.log(arr.join(''));//我的名字是YHconsole.log(arr1.join('|'));//1|2|3|4|5console.log(arr1);//[1 , 2 , 3 , 4 , 5]
Array.pop()删除
1、参数:无
2、返回值:被删除的数组元素
3、是否会改变原来的变量:会
//Array.pop()方法,从数组的末端进行删除,只要执行了pop()就会进行删除var arr = ['我的','名字','是','YH'];arr.pop();console.log(arr);//['我的', '名字', '是']console.log(arr.pop());//是 console.log(arr);//['我的', '名字']
Array.push()添加
1、参数:需要添加的内容
2、返回值:数组的长度
3、是否会改变原来的变量:会
//Array.push()方法,从数组的末端进行添加var arr = ['我的','名字','是','YH'];var arr1 = [1 , 2 , 3 , 4 , 5];arr.push(arr1[0]);console.log(arr);//['我的', '名字', '是', 'YH', 1]arr.push('!');console.log(arr);//['我的', '名字', '是', 'YH', 1, '!']console.log(arr.push(arr1));//7,返回值是 数组的长度//Array.concat()方法,合并数组var arr = ['我的','名字','是','YH'];var arr1 = [1 , 2 , 3 , 4 , 5];var arr2 = [11 , 22 , 33];console.log(arr.concat(arr1));//['我的', '名字', '是', 'YH', 1, 2, 3, 4, 5]console.log(arr);//['我的', '名字', '是', 'YH']console.log(arr.concat(arr1,arr2));//['我的', '名字', '是', 'YH', 1, 2, 3, 4, 5, 11, 22, 33]
Array.shift()删除
1、参数:无
2、返回值:被删除的数组元素
3、是否会改变原来的变量:会
//Array.shift()方法,从数组的前端进行删除,只要执行了shift()就会进行删除var arr = ['我的','名字','是','YH'];arr.shift();console.log(arr);//['名字', '是', 'YH']console.log(arr.shift());//名字 console.log(arr);//['是', 'YH']
Array.unshift()添加
1、参数:需要添加的内容
2、返回值:数组的长度
3、是否会改变原来的变量:会
//Array.unshift()方法,从数组的前端进行添加var arr = ['我的','名字','是','YH'];var arr1 = [1 , 2 , 3 , 4 , 5];arr.unshift(arr1[0]);console.log(arr);//[1, '我的', '名字', '是', 'YH']arr.unshift(':');console.log(arr);//[':', 1, '我的', '名字', '是', 'YH']arr.unshift(arr1);console.log(arr);//[Array(5), ':', 1, '我的', '名字', '是', 'YH']// console.log(arr.unshift(arr1));//7,返回值是 数组的长度
Array.slice()切割
1、参数:
不管是正数还是负数,方向都是从左到右进行切割
正数:
切割从0开始计数
一个参数的情况下,保留头并且一直到最后部分
两个参数,“保留头,不要尾”
负数:
从末端开始切割,1开始计数
一个参数的情况下,保留头并且一直到最后部分
两个参数,“保留头,不要尾”
2、返回值:
“保留头,不要尾”的部分,并且是一个新数组(浅拷贝)
3、是否会改变原来的变量:
不会
//Array.slice()方法,切割数组,“保留头,不要尾”var arr = [1 , 2 , 3 , 4 , 5 , 6];console.log(arr.slice(0));//[1, 2, 3, 4, 5, 6]console.log(arr);//[1, 2, 3, 4, 5, 6]console.log(arr.slice(2));//[3, 4, 5, 6]console.log(arr);//[1, 2, 3, 4, 5, 6]console.log(arr.slice(2,4));//[3, 4]console.log(arr.slice());//[1, 2, 3, 4, 5, 6] 浅拷贝console.log(arr.slice(-2));//[5, 6]console.log(arr.slice(-5,-2));//[2, 3, 4]
进阶数组
数组的高级方法,会进行遍历,让每一个数组都进行对应的操作
Array.filter()过滤
1、参数:
current 元素
index 元素下标
array 数组
2、返回值:返回过滤掉之后的新数组 有return返回,就要有接受的容器
3、是否会改变原来的数组:不会
//Array.filter() 过滤var arr = [1 , 2 , 3 , 4 , 5];var newArr = arr.filter(function(current,index,arr) {return current > 3;});console.log(newArr);//[4, 5]console.log(arr);// [1, 2, 3, 4, 5]
Array.forEach()添加
1、参数:callback(current,index,array),[option指定this对象]
2、返回值:无
3、是否会改变原来的变量:会
// Array.forEach() 遍历数组var arr = [1,2,3,4];/*forEach()里面放的是函数,有遍历数组的作用里面三个参数,第一个是值,第二个是对应的下标,第三个是数组*/arr.forEach(function(current,index,array){console.log(current,index,array);//[1, 2, 3, 4]});var obj ={name:"lisi",age:18}arr.forEach(function(){//this指向obj,对obj进行遍历console.log(this.name);//lisi},obj);
Array.map()
1、参数:
current 元素
index 元素下标
array 数组
2、返回值:返回一个新数组 有return返回,就要有接受的容器
3、是否会改变原来的数组:不会
//Array.map() 让每一个数组元素进行对应的操作并返回var arr = [1 , 2 , 3 , 4 , 5];var arr1 = [3 , 4 , 5];var newArr = arr.map(function(current,index,arr) {return current*2;});console.log(arr);//[1, 2, 3, 4, 5] 不会改变原来的数组console.log(newArr);//[2, 4, 6, 8, 10]var kvArray = [{key: 1, value: 10}, {key: 2, value: 20}, {key: 3, value: 30}];var newK = kvArray.map(function(current,index,arr) {var newArray = {};newArray[current['key']] = current['value'];return newArray;});console.log(newK);//[{1: 10}, {2: 20}, {3: 30}]
Array.reduce()叠加
1、参数:
accumulator 累计器 可以设置初始值
current 元素
index 元素下标
array 数组
2、返回值:返回过滤掉之后的新数组 有return返回,就要有接受的容器
3、是否会改变原来的数组:不会
//Array.reduce() 合并 叠加var arr = [1, 2, 3, 4, 5];var newArr = arr.reduce(function (acc, current, index, arr) {console.log(acc);return acc + current;}, 10);console.log(newArr); //25console.log(arr); //[1, 2, 3, 4, 5]var str = "qwenrhtgfncgzhgnrertyuiytx";//字符串转换成数组var newStr = str.split("");console.log(newStr); //['q', 'w', 'e', 'n', 'r', 'h', 't', 'g', 'f', 'n', 'c', 'g', 'z', 'h', 'g', 'n', 'r', 'e', 'r', 't', 'y', 'u', 'i', 'y', 't', 'x']var count = newStr.reduce(function (acc, current, index, arr) {if (acc[current]) {acc[current]++;} else {acc[current] = 1;}return acc;}, {});console.log(count);
Array.sort()排序
1、参数:function
2、返回值:排序后结果
3、是否会改变原来的变量:会
// Array.sort() 给数组排序var arr = [100,5,3,4,9];const months = ['March', 'Jan', 'Feb', 'Dec'];//直接使用sort方法,什么都不加,会按照开头进行排序console.log(arr.sort());//[100, 3, 4, 5, 9]console.log(months.sort());//['Dec', 'Feb', 'Jan', 'March']//使用函数返回值,进行大小排序//从小变大arr.sort(function(a,b) {return a-b;});console.log(arr);//[3, 4, 5, 9, 100]//从大变小arr.sort(function(a,b) {return b-a;});console.log(arr);//[100, 9, 5, 4, 3]//返回值为0,不会改变排序arr.sort(function(a,b) {return 0;});console.log(arr);//[100, 9, 5, 4, 3]//返回值为-1,倒序arr.sort(function(a,b) {return -1;});console.log(arr);//[3, 4, 5, 9, 100]
Array.flat()降维
1、参数:
需要进行降维的次数
2、返回值:返回降维后的数组
3、是否会改变原来的数组:不会
//Array.flat() 展开嵌套的数组,对数组进行降维var arr = [1 , 2 , [3 , [1 , 9] , 8] , 5 , 6];//三维数组console.log(arr.flat());//[1, 2, 3, Array(2), 8, 5, 6]三维==>二维console.log(arr.flat(1));//[1, 2, 3, Array(2), 8, 5, 6]三维==>二维console.log(arr.flat(2));//[1, 2, 3, 1, 9, 8, 5, 6]三维==>一维console.log(arr);//[1, 2, Array(3), 5, 6]
Array.includes()
1、参数:
需要进行判断的内容
2、返回值:返回Boolean值
3、是否会改变原来的数组:不会
//Array.includes() 判断数组里面是否有这个元素var arr = [1 , 2 , 3 , 4 , 5 , 6];console.log(arr.includes(5));//trueconsole.log(arr.includes(100));//false//Array.filter() 过滤var arr = [1 , 2 , 3 , 4 , 5];var newArr = arr.filter(function(current,index,arr) {return current > 3;});console.log(newArr);//[4, 5]console.log(arr);// [1, 2, 3, 4, 5]
Array.lastIndexOf()
1、参数:
要找的数组元素
2、返回值:返回从末端开始找到的对应的下标 有return返回,就要有接受的容器
3、是否会改变原来的数组:不会
//Array.lastIndexOf() 从末端开始找下标var arr = [1 , 2 , 3 , 4 , 1, 3]; console.log(arr.lastIndexOf(1));//4//查找到重复的元素function duplicates() {var newArr = [];for (var i = 0,len = arr.length;i < len;i++) {if (arr.lastIndexOf(arr[i]) !== arr.indexOf(arr[i])&&newArr.indexOf(arr[i]) === -1) {newArr.push(arr[i]);}}return newArr;}console.log(duplicates(arr));
Array.reverse()反向
1、参数:无
2、返回值:返回反向后的数组
3、是否会改变原来的数组:会
//Array.reverse() 将数组进行反向var arr = [1 , 2 , 3 , 4];console.log(arr.reverse());//[4, 3, 2, 1]console.log(arr);//[4, 3, 2, 1]
Array.some()和every()
1、参数:
需要删除的下标,从0开始
删除或者替换的个数
需要进行替换的字符串。可以有很多个字符串,用逗号,进行分割
2、返回值:返回删除的部分,删除是从下标开始
如果只设置了一个参数,那么就会从开始的下标进行删除,直到最后
如果设置两个参数,会根据下标和删除的个数进行删除
3、是否会改变原来的数组:会
/*判断一个数组是不是纯数字数组some 数组中至少有一项符合return的测试 如果有 返回true 如果没有 返回false ||every 每一项都通过return的条件 返回true 有一项不通过就返回false &&*/var arr = [1 , 2 , "3" , 4 , 5 , 6];var result1 = arr.some(function (current,index,arr) {return typeof current === 'number';});console.log(result1);//truevar result2 = arr.every(function (current,index,arr) {return typeof current === 'number';});console.log(result2);//false
Array.splice()替换
1、参数:
需要删除的下标,从0开始
删除或者替换的个数
需要进行替换的字符串。可以有很多个字符串,用逗号,进行分割
2、返回值:返回删除的部分,删除是从下标开始
如果只设置了一个参数,那么就会从开始的下标进行删除,直到最后
如果设置两个参数,会根据下标和删除的个数进行删除
3、是否会改变原来的数组:会
//Array.splice() 在对应的地方进行删除或者替换var arr = [1 , 2 , 3 , 4 , 5 , 6];//设置一个参数console.log(arr.splice(1));//[2, 3, 4, 5, 6]console.log(arr);//[1]//设置两个参数arr = [1 , 2 , 3 , 4 , 5 , 6];console.log(arr.splice(1,2));//[2, 3]console.log(arr);//[1, 4, 5, 6]//设置三个参数arr = [1 , 2 , 3 , 4 , 5 , 6];console.log(arr.splice(1,2,'100','56'));//[2, 3]console.log(arr);//[1, '100', '56', 4, 5, 6]arr = ['a','b','c','d','e','f'];var eTargetIndex = 1,colliIndex = 3,colliEle = arr[1];arr.splice(eTargetIndex,1);console.log(arr);//['a', 'c', 'd', 'e', 'f']arr.splice(colliIndex,0,colliEle);console.log(arr);//['a', 'c', 'd', 'b', 'e', 'f']
相关文章:
JavaScript--Array
文章目录 数组基础数组Array.concat()合并数组Array.indexOf()Array.isArray()Array.join()连接Array.pop()删除Array.push()添加Array.shift()删除Array.unshift()添加Array.slice()切割 进阶数组Array.filter()过滤Array.forEach()添加Array.map()Array.reduce()叠加Array.so…...
Java大师成长计划之第17天:锁与原子操作
📢 友情提示: 本文由银河易创AI(https://ai.eaigx.com)平台gpt-4o-mini模型辅助创作完成,旨在提供灵感参考与技术分享,文中关键数据、代码与结论建议通过官方渠道验证。 在多线程编程中,如何保证…...
Tailwind CSS v4 主题化实践入门(自定义 Theme + 主题模式切换)✨
ok,经过学习Tailwindcss我决定将此专栏建设成为一个Tailwindcss实战专栏,我将在专栏内完成5050挑战:50天50个Tailwindcss练习项目,欢迎大家订阅!!! Tailwind CSS v4 带来了更强大的主题定制能力…...
[C++] 大数减/除法
目录 高精度博客 - 前两讲高精度减法高精度除法高精度系列函数完整版 高精度博客 - 前两讲 讲次名称链接高精加法[C] 高精度加法(作用 模板 例题)高精乘法[C] 高精度乘法 高精度减法 void subBIG(int x[], int y[], int z[]){z[0] max(x[0], y[0]);for(int i 1; i < …...
数据链共享:从印巴空战到工业控制的跨越性应用
摘要 本文通过对印巴空战中数据链共享发挥关键作用的分析,引出数据链共享在工业控制领域同样具有重大价值的观点。深入阐述 DIOS 工业控制操作系统作为工业数据链共享基础技术的特点、架构及应用优势,对比空战场景与工业控制场景下数据链共享的相…...
加速pip下载:永久解决网络慢问题
一文教你解决 pip 下载太慢了的问题 || 下载时因为网络不好中断下载的问题 一、找到 pip 配置文件路径 1.配置文件位置: Windows 系统的 pip 配置文件默认不存在,需要手动创建,路径为: C:\Users\你的用户名\pip\pip.ini 用户目…...
无线网络设备中AP和AC是什么?有什么区别?
无线网络设备中AP和AC是什么?有什么区别? 一. 什么是AP?二. 什么是AC?三. AP与AC的关系 前言 肝文不易,点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。 作者:神的孩子都…...
软考中级数据库备考-上午篇
背景 新工作主要做大数据平台,考一个软考中级数据库系统工程师,补足一下基础知识。 基础知识 1.计算机硬件基础知识 正确答案:C 正确答案:D 正确答案:C 正确答案:BC 正确答案:B 正确答案:D 正确答案:A DMA建立内存与外设的直接…...
opencv处理图像(二)
接下来进入到程序线程设计部分 我们主线程负责图形渲染等操作,OpenGL的限制,opencv技术对传入图像加以处理,输出预期图像给主线程 QThread 我之前也是在想给opencv开一个专门的线程,但经过了解有几个弊端,第一资源浪…...
powerbuilder9.0中文版
经常 用这个版本号写小软件,非常喜欢这个开发软件 . powerbuilder9.0 非常的小巧,快捷,功能强大,使用方便. 我今天用软件 自己汉化了一遍,一些常用的界面都已经翻译成中文。 我自己用的,以后有什么界面需要翻译,再更新一下。 放在这里留个…...
Linux510 ssh服务 ssh连接
arning: Permanently added ‘11.1.1.100’ (ECDSA) to the list of known hosts. rooot11.1.1.100’s password: Permission denied, please try again. rooot11.1.1.100’s password: Permission denied, please try again 还没生效 登不上了 失效了 sshcaozx26成功登录 …...
【25软考网工】第六章(2)信息加密技术
博客主页: christine-rr-CSDN博客 专栏主页: 软考中级网络工程师笔记 大家好,我是christine-rr !目前《软考中级网络工程师》专栏已经更新二十多篇文章了,每篇笔记都包含详细的知识点,希望能帮助到你!…...
LeetCode 热题 100 138. 随机链表的复制
LeetCode 热题 100 | 138. 随机链表的复制 大家好,今天我们来解决一道经典的链表问题——随机链表的复制。这道题在 LeetCode 上被标记为中等难度,要求深拷贝一个带有随机指针的链表。 问题描述 给你一个长度为 n 的链表,每个节点包含一个额…...
差动讯号(3)弱耦合与强耦合
各位在设计高速差动对时,除了阻抗之外,可能还会被问到一个问题,P与N之间的间距要多少? 在差动讯号(2):奇模与偶模一文中,我们已经知道差动对两线间距会影响其特性阻抗,且…...
强化学习系列:深度强化学习和DQN
1. 往期回顾 介绍了强化学习的基本概念和基本原理 介绍了基于动态规划的传统强化学习——价值迭代、策略迭代 介绍了在无模型的环境下,基于时序差分的表格型强化学习——Q-learning、SARSA 这些传统的方法都有各自的局限性,能适用的范围有限…...
AlimaLinux设置静态IP
通过nmcli命令来操作 步骤 1:确认当前活动的网络接口名称 首先,需要确认当前系统中可用的网络接口名称。可以使用以下命令查看: nmcli device步骤 2:修改配置以匹配正确的接口名称 sudo nmcli connection modify ens160 ipv4.…...
神经网络极简入门技术分享
1. 引言 神经网络是深度学习的基础,其设计灵感来源于人脑神经元的结构和工作方式。尽管现代神经网络已经变得异常复杂,但其核心原理却相对简单易懂。本报告旨在通过剖析神经网络的最基本单元——神经元,帮助初学者理解神经网络的工作原理。 …...
使用定时器监视当前PID 如果当前程序关闭 UI_Core.exe 也随之自动关闭实现方法
使用定时器监视当前PID 如果当前程序关闭 UI_Core.exe 也随之自动关闭实现方法 描述: C20 QT6.9 VS2022 中使用QProcess::startDetached(“UI_Core.exe”, QStringList(), QString(), &UI_Manage_pid);是启动目标程序 能否同时告诉目标程序当前宿主程序的PID,在UI_CORE.EX…...
SpringCloud之Ribbon基础认识-服务负载均衡
0、Ribbon基本认识 Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端 负载均衡的工具。 Ribbon 主要功能是提供客户端负载均衡算法和服务调用 Ribbon 客户端组件提供一系列完善的配置项如连接超时,重试等。 Ribbon 会基于某种规则(如简单…...
leetcode0829. 连续整数求和-hard
1 题目: 连续整数求和 官方标定难度:难 给定一个正整数 n,返回 连续正整数满足所有数字之和为 n 的组数 。 示例 1: 输入: n 5 输出: 2 解释: 5 2 3,共有两组连续整数([5],[2,3])求和后为 5。 示例 2: 输入: n 9 输出: …...
Python-77:古生物DNA序列血缘分析
问题描述 小U是一位古生物学家,正在研究不同物种之间的血缘关系。为了分析两种古生物的血缘远近,她需要比较它们的DNA序列。DNA由四种核苷酸A、C、G、T组成,并且可能通过三种方式发生变异:添加一个核苷酸、删除一个核苷酸或替换一…...
数据结构算法习题通关:树遍历 / 哈夫曼 / 拓扑 / 哈希 / Dijkstra 全解析
已知一棵二叉树先序遍历和中序遍历分别为 ABDEGCFH 和 DBGEACHF,请画出这个二叉树的逻辑结构并写出后序遍历的序列。 先序遍历:ABDEGCFH 中序遍历:DBGEACHF 先序遍历看出根为A,左子树DBGE,右子树CHF A的左子树 再…...
使用lldb查看Rust不同类型的结构
目录 前言 正文 标量类型 复合类型——元组 复合类型——数组 函数 &str struct 可变数组vec Iter String Box Rc Arc RefCell Mutex RwLock Channel 总结 前言 笔者发现这个lldb挺好玩的,可以查看不同类型的结构,虽然这好像是C的东…...
M0的基础篇之PWM学习
一、困惑 上一节课就是单纯的之配置了一个基础的定时器进行计数,计到一定的数值也就是到了一定的时间就进入中断,执行中断里面的任务,也就是一个最基础的定时的功能 这一节课的定时器产生了一个pwm波。也就是我们可以改变里面高电平的持续时间…...
win10-启动django项目时报错
前提 win10系统下已经安装了pip 和django(因为搜报错解决办法的时候,有博客说先检查下django有没有安装),另外也没有安装anaconda,没有用虚拟环境 报错如下 在pycharm执行新建app的命令python mange.py startapp app02…...
coze工作流完成行业调研报告
一、coze 是什么? Coze是由字节跳动推出的新一代AI应用开发平台,定位是零代码或低代码的AI开发平台,也被称为字节跳动版的GPTs ,国内版名为“扣子”。 Coze有国内版和国外版两个版本。国内版网址为http://www.coze.cn ÿ…...
为什么有了BST了,还要红黑树,红黑树有什么优点
BST(二叉搜索树)和红黑树都是常见的树形数据结构,但红黑树在某些方面对BST进行了优化,主要解决了BST在特定情况下可能出现的性能问题。以下是红黑树的核心优点及其存在的必要性: BST的局限性 BST的时间复杂度与树的高…...
【Linux基础】网络相关命令
目录 netstat命令 1.1 命令介绍 1.2 命令格式 1.3 常用选项 1.4 常用命令实例 1.4.1 显示所有TCP连接 1.4.2 查看路由表 1.4.3 实时监控网络接口流量 1.4.4 查看监听中的端口以及关联进程 ping命令 2.1 命令介绍 2.2 命令格式 2.3 常用选项 2.4 常用示例 ifconfi…...
DB4S:一个开源跨平台的SQLite数据库管理工具
DB Browser for SQLite(DB4S)是一款开源、跨平台的 SQLite 数据库管理工具,用于创建、浏览和编辑 SQLite 以及 SQLCipher 数据库文件。 功能特性 DB4S 提供了一个电子表格风格的数据库管理界面,以及一个 SQL 查询工具。DB4S 支持…...
多个python环境下,pip安装无法成功解决方案
问题 使用pip install xxx,安装过程很顺利且无任何报错,但是一旦在python中import xxx时,仍然提示xxx不存在。 解决方案 首先排除掉xxx包命名是否正确—— 这个非本文重点。 当已经确认xxx包命名正确,且常规通过pip install 即…...
人脸真假检测:SVM 与 ResNet18 的实战对比
在人工智能蓬勃发展的当下,人脸相关技术广泛应用于安防、金融、娱乐等诸多领域。然而,随着人脸合成技术的日益成熟,人脸真假检测成为保障这些应用安全的关键环节。本文将深入探讨基于支持向量机(SVM)结合局部二值模式&…...
求数组中的两数之和--暴力/哈希表
暴力法太好用了hhhhhhhhhhhhhhhhhhh我好爱鹅鹅鹅鹅鹅鹅呃呃呃呃呃呃呃呃呃呃 #include <iostream> #include <vector> using namespace std; int main(){ int n,target; cin>>n>>target; vector<int> nums(n); for(int i0;i<n;i){ cin>>…...
Go多服务项目结构优化:为何每个服务单独设置internal目录?
文章目录 Go多服务项目结构优化:为何每个服务单独设置internal目录?背景什么是 Go 的 internal 机制?传统根 internal 目录的局限为什么要每个服务单独设置 internal ?推荐结构示例 总结 Go多服务项目结构优化:为何每个…...
Wallcraft 3.53.0 | 提供高质量动态4D壁纸,解锁高级版,无广告干扰
Wallcraft是一款专注于提供高质量、原创壁纸的应用程序,特别是其特色的动态4D壁纸。这款应用程序不仅提供了大量免费的4K超高清壁纸和炫酷背景,还特别推出了带有视差效果的动态超高清4K壁纸及视频壁纸。用户可以根据个人喜好选择并设置这些壁纸作为手机屏…...
akshare爬虫限制,pywencai频繁升级个人做量化,稳定数据源和券商的选择
做量化,数据和交易接口是策略和自动化交易的基石,而稳定的数据和快人一步的交易接口是个人做量化的催化剂。 之前写过一篇文章:个人做量化常用的数据,多以爬虫为主,最近akshare爬虫限制,pywencai频繁升级。…...
leetcode504.七进制数
标签:进制转换 机试真题 给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。 示例 1: 输入: num 100 输出: "202" 示例 2: 输入: num -7 输出: "-10" 思路:求n进制就是循环取余数,…...
OpenAI 结构改革:迈向民主化 AI 的新篇章
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
Satori:元动作 + 内建搜索机制,让大模型实现超级推理能力
Satori:元动作 内建搜索机制,让大模型实现超级推理能力 论文大纲一、背景:LLM 推理增强的三类方法1. 基于大规模监督微调(SFT)的推理增强2. 借助外部机制在推理时进行搜索 (RLHF / 多模型 / 工具)3. 现有局限性总结 二…...
Python序列化的学习笔记
1. Npy&Numpy O4-mini-Cursor:如果.npy文件里包含了「Python对象」而非纯数值数组时,就必须在加载时加上allow_pickleTrue。...
如何修改进程优先级?
文章目录 1. 摘要2. 命令实现2.1 使用 renice(调整普通进程的优先级)2.2 使用 chrt(调整实时进程的优先级) 3. 代码实现 1. 摘要 在实际开发中,我们经常会遇到创建进程的场景,但是往往并不关心它的优先级…...
java命令行打包class为jar并运行
1.创建无包名类: 2.添加依赖jackson 3.引用依赖包 4.命令编译class文件 生成命令: javac -d out -classpath lib/jackson-core-2.13.3.jar:lib/jackson-annotations-2.13.3.jar:lib/jackson-databind-2.13.3.jar src/UdpServer.java 编译生成class文件如下 <...
JAVA自动装箱拆箱
引言 Java 中的**装箱(Boxing)和拆箱(Unboxing)**是自动类型转换的机制,用于在基本数据类型(如 int、long 等)和其对应的包装类(如 Integer、Long 等)之间进行转换。这种…...
Linux系统之----模拟实现shell
在前面一个阶段的学习中,我们已经学习了环境变量、进程控制等等一系列知识,也许有人会问,学这个东西有啥用?那么,今天我就和大家一起综合运用一下这些知识,模拟实现下shell! 首先我们来看一看我…...
Doris和Clickhouse对比
目录 一、Doris和Clickhouse对比**1. 底层架构****Doris****ClickHouse** **2. 运行原理****Doris****ClickHouse** **3. 使用场景****Doris****ClickHouse** **4. 优缺点对比****总结** 二、MPP架构和Shared-Nothing 架构对比**1. 什么是 MPP 架构?****定义****特点…...
思考:(linux) tmux 超级终端快速入门的宏观思维
tmux 工具集合 GitHub - rothgar/awesome-tmux: A list of awesome resources for tmux 要点: 习惯性思维的变换与宿主机之间的双向复制、粘贴手动备份全部窗口,以及还原自定义窗格提示信息TPM 插件的安装思想别名 在有些场景里,可能无法…...
JavaScript基础-全局作用域
在JavaScript中,理解不同种类的作用域是掌握这门语言的关键之一。作用域决定了变量和函数的可访问性(即可见性和生命周期)。其中,全局作用域是最基本也是最宽泛的作用域类型。本文将深入探讨全局作用域的概念、特点及其使用时需要…...
【MCAL】TC397+EB-tresos之I2c配置实战(同步、异步)
I2C总线是Philips公司在八十年代初推出的一种串行、半双工的总线,主要用于近距离、低速的芯片之间的通信。本篇文章首先从理论讲起,介绍了英飞凌TC3x系列芯片对应MCAL中对I2C驱动的定义与介绍,建议读者在阅读本篇文章之前对I2C有个简单的认识…...
电网拓扑分析:原理与应用
在现代电力系统中,电网拓扑分析是一项至关重要的技术,它为电力系统的安全、稳定和高效运行提供了坚实的基础。电网拓扑描述了电力系统中各元件(如发电机、变压器、输电线路、负荷等)之间的连接关系,通过拓扑分析&#…...
leetcode-hot-100(哈希)
写在前面 这部分官方标记为哈希,下面的代码使用的都是 C 进行实现,说到 C 中的哈希,需要了解一下 C 中的 hashtable(std::unordered_map或std::unordered_set)。 std::unordered_map std::unordered_map 是一个存储…...
音频类网站或者资讯总结
我爱音频网: 我爱音频网 - 我们只谈音频,丰富的TWS真无线蓝牙耳机拆解报告 (52audio.com) 其他更多资讯 音频行业全品类深度剖析,2024市场趋势解读汇总-EDN 电子技术设计 (ednchina.com)...