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

【JS】数组常用方法总结-功能、参数、返回值

数组常用方法总结-功能、参数、返回值

用简单的js示例
运行在线工具:链接: 菜鸟工具
菜鸟工具示意图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/de8589eb1acf42abb0347d8a3a3bbdfa.png
在这里插入图片描述

1.会改变原有数组方法

(1)push、pop-最后元素增删

push

-功能:在数组的最后面,添加一个或者多个元素
-参数:array.push(item1, item2, …, itemX),参数可以是字符串、数组、对象等
-返回值:添加元素后数组的长度.

let arr = [1,2,3,4,5];
let arrnew=arr.push(3)
console.log(arr);//[1, 2, 3, 4, 5, 3]
console.log(arrnew);//6

pop
-功能:在数组的最后面,删除一个元素
-参数:array.pop()无参数
-返回值:返回的是刚才删除的元素.

let arr = [1,2,3,4,5];
let arrnew=arr.pop()
console.log(arr);//[1, 1, 2, 3, 4]
console.log(arrnew);5

(2)unshif、shif-最前元素增删

unshift
-功能:在数组的最前面,添加一个或者几个元素
-参数:array.unshift(item1,item2, …, itemX),参数可以是字符串、数组、对象等
-返回值:添加元素后数组的长度.

let arr = [1,2,3,4,5];
let arrnew=arr.unshift(1)
console.log(arr);//[1, 1, 2, 3, 4, 5]
console.log(arrnew);6

shift
-功能:在数组的最前面,删除一个元素
-参数:arr.shift()无参数
-返回值:返回的是刚才删除的元素.

let arr = [2,3,4,5];
let arrnew=arr.shift()
console.log(arr);//[3, 4, 5]
console.log(arrnew);//2

(3)splice-元素删除与添加

-功能:添加或删除数组中的元素
-参数:array.splice(index,howmany,item1,…,itemX)
从index下标开始,删除howmany个,并在该位置添加item
(其中index参数必须)
-返回值:含有被删除的元素的数组

//arr.splice(start,deletedCount,item)
let arr = [1,2,4,17,3];
let arrnew=arr.splice(1,3,7)
console.log(arr);//[1,7, 3]
console.log(arrnew);// [2, 4, 17]
//arr.splice(start,deletedCount)
let arr = [1,2,4,17,3];
let arrnew=arr.splice(1,3)
console.log(arr);//[1, 3]
console.log(arrnew);// [2, 4, 17]
//arr.splice(start,0,item)
let arr = [1,2,4,17,3];
let arrnew=arr.splice(1,0,7)
console.log(arr);// [1, 7, 2, 4, 17, 3]
console.log(arrnew);// []

(4)copyWithin-复制元素

-功能:从数组的指定位置拷贝元素到数组的另一个指定位置中
-参数:array.copyWithin(target, start, end)
其中target为必须参数,其余可选
-返回值:返回改变后的新数组

const arr1 = [1,2,3,4,5];
const arrnew = arr1.copyWithin(2, 0, 2);
console.log(arr1);//[1, 2, 1, 2, 5]
console.log(arrnew);//[1, 2, 1, 2, 5]

(5)sort-数组排序

-功能:对数组的元素进行排序。
-参数1:无参数
-返回值:将按照ASCII字符顺序进行排序
(如果数组元素是数字,sort方法会调用每一个数组项的toString()方法,获得字符串,而后再对获得的字符串进行排序);
(如下实例数组元素是数字,无参数,所以17会排在2的前面)

//无参数,17在2的前面
let arr = [1,2,4,17,3];
let arrnew=arr.sort();
console.log(arr);//[1, 2, 3, 4, 17]
console.log(arrnew);//[1, 2, 3, 4, 17]

-参数2:arr.sort(function(a,b){})回调函数,其中b值在a值前面
-返回值:
如果返回值大于 0,则位置互换。
如果返回值小于 0,则位置不变。
a-b输出从小到大排序
b-a输出从大到小排序。

//有参数
let arr = [1,2,4,17,3];
let arrnew=arr.sort(function(a,b){return a-b;
});
console.log(arr);//[1, 2, 3, 4, 17]
console.log(arrnew);// [1, 2, 3, 4, 17]

(6)reverse-数组排序

-功能:对数组的元素进行翻转。
-参数:array.reverse()无参数
-返回值:颠倒顺序的数组

let arr = [1,2,4,7,3];
let arrnew=arr.reverse();
console.log(arr);//[3, 7, 4, 2, 1]
console.log(arrnew);//[3, 7, 4, 2, 1]

2.不会改变原有数组方法

2.1 判断方法

(1)isArray() -判断是否是数组

-功能:判断是否是数组。
-参数:Array.isArray(arr),参数为要判断的对象
-返回值:如果对象是数组返回 true,否则返回 false。

let arr = [1,2,4,7,3];
let arrnew=Array.isArray(arr);
console.log(arr);//[3, 7, 4, 2, 1]
console.log(arrnew);//true

2.2 操作方法

(1)concat-拼接数组

-功能:连接两个或更多的数组
-参数:array1.concat(array2, array3,…, arrayX)
-返回值:返回拼接后的新数组
-concat和push的区别:push是将参数作为整体直接加到数组最后一个,并且返回值是新数组长度,如下例子push后的结果应为[1,2,3,4,5,[a,b]]所以返回的长度为6)

const arr1 = [1,2,3,4,5];
const arr2 = ['a','b'];
const arrnew = arr1.concat(arr2);
const arr3 = arr1.push(arr2);
console.log(arr1);//[1, 2, 3, 4, 5]
console.log(arr2);
console.log(arrnew);//[1, 2, 3, 4, 5, 'a', 'b']
console.log(arr3);//6

(2)slice-截取数组

-功能:从数组中截取指定的字段
-参数1:arr.slice(start,end)从start下标开始截取,一直到end结束,不包括end
-返回值:返回截取的新数组

let arr = [1,2,3,4,5];
let arrnew=arr.slice(2,3)
console.log(arr);//[1, 2, 3, 4, 5]
console.log(arrnew);//[3]

-参数2:arr.slice(start) ;从start下标开始截取,一直到最后

let arr = [1,2,3,4,5];
let arrnew=arr.slice(3)
console.log(arr);//[1, 2, 3, 4, 5]
console.log(arrnew);//[4, 5]

-参数3:arr.slice( ) ;全部截取

let arr = [1,2,3,4,5];
let arrnew=arr.slice()
console.log(arr);//[1, 2, 3, 4, 5]
console.log(arrnew);//[1, 2, 3, 4, 5]

2.4 查询方法

(1.1)indexOf-查找元素第一次出现

-功能:查找元素在数组中第一次出现的位置,可以用来判断数组是否含有该元素
-参数1:arr.indexOf (element,fromIndex),从fromIndex这个下标开始,(从左往右)元素第一次出现的位置
-返回值:查找到的元素的下标(若无此元素,返回-1)

let arr = [1,2,4,6,3];
let arrnew=arr.indexOf(4)
if (arr.indexOf(4) === -1){console.log('元素不存在')
} else {console.log(' 元素存在!')
}
console.log(arr);// [1,2,4,6,3];
console.log(arrnew);// 2

(1.2)lastIndexOf-查找元素最后一次出现

-功能:查找元素在数组中最后出现的位置
-参数1:arr.lastIndexOf (element,fromIndex),从fromIndex这个下标开始,(从右往左)元素最后一次出现的位置
(这里最后一项是按照数组从左往右的最后一项)
(虽然是从右往左搜索,但返回的位置是从左往右数的)
-返回值:查找到的元素的下标(若无此元素,返回-1)

let arr = [1,2,4,6,4,3];
let arrnew=arr.lastIndexOf(4)
let arrnew2=arr.lastIndexOf(4,1)
console.log(arr);// [1, 2, 4, 6, 4, 3]
console.log(arrnew);// 4
console.log(arrnew2);// -1

(2)includes-查找元素

-功能:判断一个数组是否包含一个指定的值
-参数1:arr.includes (searchElement,fromIndex)
searchElement:必须;fromIndex可选
-返回值:如果是返回 true,否则false

let arr = [1,2,3,4,5];
let arrnew=arr.includes(1)
console.log(arr);// [1, 2, 3, 4, 5]
console.log(arrnew);//true

(3.1)find-匹配元素

-功能:find找到符合条件的项,
-参数:array.find(function(currentValue, index, arr),thisValue)
-返回值:返回符合测试条件的第一个数组元素值,如果没有符合条件的则返回 undefined。

let arr = [1,2,3,4,5];
let arrnew=arr.find(function(item){return item < 4
})console.log(arr);// [1, 2, 3, 4, 5]
console.log(arrnew);//1

(3.2)findfindIndex-匹配元素

-功能:findIndex找到符合条件的项的下标
-参数:array.findIndex(function(currentValue, index, arr), thisValue)
-返回值:返回第一项下标,如果没有符合条件的则返回 -1

let arr = [1,2,3,4,5];
let arrnew=arr.findIndex(function(item){return item < 4
})console.log(arr);// [1, 2, 3, 4, 5]
console.log(arrnew);//0

2.3 转换方法

(1)split-字符串拆分成数组

-功能:用指定的分隔符,将字符串分割成数组。
-参数:参数为要分隔的值
-返回值:一个新的数组

const str = 'test-arry';
const arr = str.split('-');
console.log(str);//test-arry
console.log(arr);//['test', 'arry']

(2)join-数组转为字符串整体

-功能:将数组里的元素,通过指定的分隔符,以字符串的形式连接起来
-参数:array.join(separator)
separator指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
-返回值:一个新的字符串

const arr1 = [1,2,3,4,5];
const arrnew = arr1.join('-');
console.log(arr1);//[1, 2, 3, 4, 5]
console.log(arrnew);//1-2-3-4-5

(3)toString()-数组转为字符串

-功能:把数组转换为字符串,数组中的元素之间用逗号分隔。
-参数:array.toString()
-返回值:一个新的字符串

const arr1 = [1,2,3,4,5];
const arrnew = arr1.toString()
console.log(arr1);//[1, 2, 3, 4, 5]
console.log(arrnew);//1,2,3,4,5

2.4 迭代方法

(1)forEach

-功能:调用数组的每个元素,并将元素传递给回调函数
-参数:array.forEach(callbackFn(currentValue, index, arr), thisValue)
-返回值:没有返回值

const arr = [1,2,3,4,5];
const arrnew = arr.forEach(function(item,index,arr){item=item+1
});
console.log(arr);//[1, 2, 3, 4, 5]
console.log(arrnew)//undefined

(2.1)some()-检测数组

-功能:some()检测是否元素符合指定条件,一旦找到,则不会继续迭代下去。
-参数:array.some(function(currentValue,index,arr),thisValue)
-返回值:符合true;不符合false

let arr = [1,2,3,4,5];
let arrnew=arr.some(function(item){return item < 2
})
let arrnew2=arr.every(function(item){return item < 2
})
console.log(arr);// [1, 2, 3, 4, 5]
console.log(arrnew);//true
console.log(arrnew2);//false

(2.2) every()-检测数组

-功能:every()检测每个元素是否符合条件;一旦有一个不符合条件,则不会继续迭代下去。
-参数:array.every(function(currentValue,index,arr), thisValue)
-返回值:符合true;不符合false

(3)filter()-过滤数组

-功能:通过检查指定数组中符合条件的所有元素
-参数arr.filter(function(currentValue,index,arr), thisValue)
-返回值:返回一个新数组

let arr = [1,2,3,4,5];
let arrnew=arr.filter(function(item,index,arr){return item>2
})
console.log(arr);// [1, 2, 3, 4, 5]
console.log(arrnew);//  [3, 4, 5]

(4)map()-映射

-功能:对数组每一项都运行传入的函数
-参数:array.map(function(currentValue,index,arr), thisValue)
currentValue必须值,表示数组每一项元素
index: 对应的下标索引值
arr: 就是调用该方法的数组本身
thisValue:如果没有默认null或者undefined
-返回值:由每次函数调用的结果构成的数组

let arr = [1,2,3,4,5];
let arrnew=arr.map(function(item,index,arr){return item*2
})
console.log(arr);// [1, 2, 3, 4, 5]
console.log(arrnew);//  [2, 4, 6, 8, 10]

(5)reduce-累加元素

-功能:接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值;可以作为一个高阶函数,用于函数的 compose
-参数:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
total:必需。初始值, 或者计算结束后的返回值。
-返回值:由每次函数调用的结果构成的数组
-可计算数组总和、扁平化数组、数组去重、计算元素出现次数

//计算数组总和
let arr = [1,2,3,4,5];
let arrnew=arr.reduce(function(total,item){return total+item
})console.log(arr);// [1, 2, 3, 4, 5]
console.log(arrnew);//15
//二维数组转为一维数组
let arr = [[1, 2], [2, 3], [4, 5], [6, 7]]let arrnew = arr.reduce((a, b) => {return a.concat(b)}, [])console.log(arrnew)//[1,2,2,3,4,5,6,7]//数组去重let arr = [1,2,3,4,4,1]
let newArr = arr.reduce((pre,cur)=>{if(!pre.includes(cur)){return pre.concat(cur)}else{return pre}
},[])
console.log(newArr);// [1, 2, 3, 4]
//计算每个元素出现的次数
let arr = [1,2,1,3,4,3]
let arrnew = arr.reduce((pre,cur) =>{
if( cur in pre){
pre[cur]++
}
else{
pre[cur] = 1
}
return pre
}, {})
console.log(arrnew) // {1: 2, 2: 1, 3: 2, 4: 1}

参考:
1.数组的常用方法大全
2.菜鸟教程: JavaScript Array 对象

相关文章:

【JS】数组常用方法总结-功能、参数、返回值

数组常用方法总结-功能、参数、返回值 用简单的js示例 运行在线工具&#xff1a;链接: 菜鸟工具 菜鸟工具示意图&#xff1a; ![在这里插入图片描述](https://img-blog.csdnimg.cn/de8589eb1acf42abb0347d8a3a3bbdfa.png 1.会改变原有数组方法 &#xff08;1&#xff09;pu…...

pytest 单元测试前后置处理

文章目录方法1 setup/teardown方法2 fixture 夹具方法3 conftest.py测试用例执行前后的一些处理动作&#xff0c;也叫夹具。以下介绍使用前后置操作的几种方法。方法1 setup/teardown setup&#xff0c;每个测试用例执行前要进行的处理。 teardown&#xff0c;每个测试用例执行…...

汽车安全硬件扩展 AUTOSAR SHE SecureHardwareExtensions

SHE&#xff08;Secure Hardware Extension&#xff09;在车联网中&#xff0c;被应用在车端ECU中负责安全存储与安全计算。是由HIS&#xff08;由Audi、BMW、Porsche、Volkswagen组成&#xff09;制定的标准&#xff0c;中文意思“安全硬件扩展”&#xff0c;是对任何给定微控…...

2023年美国大学生数学建模C题:预测Wordle结果建模详解+模型代码

目录 前言 一、题目理解 背景 解析 字段含义&#xff1a; 建模要求 二、建模思路 灰色预测&#xff1a; ​编辑 二次指数平滑法&#xff1a; person相关性 只希望各位以后遇到建模比赛可以艾特认识一下我&#xff0c;我可以提供免费的思路和部分源码&#xff0c;以后…...

5、HAL库驱动W25Qxx

一、 SPI通信驱动W25Qxx 1、使用驱动文件快速配置工程代码驱动W25Qxx &#xff08;此驱动文件只适合W25Qxx 16M及以下型号&#xff0c;因为访问地址位数不同&#xff09; 注&#xff1a;本次使用SPI的方式进行访问W25Qxx Flash进行数据读写&#xff0c;关于W25Qxx芯片不会做…...

git rebase 洐合(变基)

洐合 把一个分支整合到另一个分支的办法有两种&#xff1a;merge&#xff08;合并&#xff09; 和 rebase&#xff08;衍合&#xff09; 为什么使用&#xff1f; 使提交记录更简洁 三种情况 第一种&#xff1a; 合并多条commit记录 git rebase -i HEAD~合并数量 HEAD~3&a…...

Kubernetes 1.18学习笔记

文章目录一、Kubernetes 概述和架构1、kubernetes 基本介绍2、Kubernetes 功能3、Kubernetes 架构组件4、Kubernetes 核心概念5、Kubernetes 工作原理二、Kubernetes 集群搭建1、系统环境准备1.1 安装要求1.2 系统初始化2、客户端工具kubeadm搭建2.1 安装步骤2.2 安装组件2.3 集…...

AJAX技术

AJAX技术 浏览器是多进程的&#xff0c;简单的说就是&#xff0c;浏览器每打开一个标签页&#xff0c;就相当于创建了一个独立的浏览器进程。但是js是基于单线程的&#xff0c;而这个线程就是浏览器的js引擎&#xff0c;浏览器无论在什么时候都只且只有一个线程在运行JavaScri…...

华为OD机试 - 最大排列(JS)

最大排列 题目 给定一组整数&#xff0c;重排序后输出一个最大的整数 输入 数字组合 输出 最大的整数 示例一 输入 10 9输出 910解题思路 我们可以读入一个字符串&#xff0c;将字符串中的单词按照每个单词的字典序长度&#xff0c;字典序从大到小的顺序排序&#x…...

Prometheus Docker安装及监控自身

前提环境&#xff1a; Docker环境 涉及参考文档&#xff1a; 安装Prometheus开始 Prometheusnode_exporter Agent组件 一、部署Prometheus 1、启动容器将文件拷贝出来 docker run -d prom/prometheus2、容器将文件拷贝出来 docker cp 容器ID:/usr/share/prometheus/conso…...

点云处理PCL常用函数与工具

点云处理PCL常用函数与工具 文章目录点云处理PCL常用函数与工具前言一、点云读取与保存数据读取数据保存自定义的点云保存格式二、点云显示点云显示-根据颜色点云显示-根据指定轴数值点云显示-根据指定信息显示多组点云显示三、点云滤波直通滤波统计滤波均匀下采样滤波VoxelGri…...

FyListen 在 MVP 架构中的内存优化表现

FyListen 在 MVP 中的内存优化表现 本文只是分享个人开源框架的内存优化测试&#xff0c;你可以直接跳到最后&#xff0c;参考内存泄漏的分析过程&#xff01; 项目地址&#xff1a; https://github.com/StudyNoteOfTu/fylisten2-alpha1 由于使用到 AOP&#xff0c;所以直接…...

Qt代码单元测试以及报告生成

简介 单元测试是所有测试中最底层的一类测试&#xff0c;是第一个环节&#xff0c;也是最重要的一个环节&#xff0c;是唯一一次有保证能够代码覆盖率达到100%的测试&#xff0c;是整个软件测试过程的基础和前提&#xff0c;单元测试防止了开发的后期因bug过多而失控&#xff0…...

vscode构建Vue3.0项目(vite,vue-cli)

构建Vue3.0项目构建Vue3.0项目1.使用Vite构建vue项目的方法以及步骤1. 安装vite2. 运行vite vue 项目3.说明2.使用vue-cli构建vue项目的方法以及步骤1.安装全局vue cli —— 脚手架2、VSCode3.报错4.运行构建Vue3.0项目 1.使用Vite构建vue项目的方法以及步骤 1. 安装vite n…...

【2023】华为OD机试真题Java-题目0215-优雅数组

优雅数组 题目描述 如果一个数组中出现次数最多的元素出现大于等于 k k k 次,被称为k-优雅数组, k k k 也可以被称为优雅阈值。 例如,数组[1, 2, 3, 1, 2, 3, 1],它是一个3-优雅数组,因为元素1出现次数大于等于3次...

通过Prowork每日自动提醒待处理工作任务

对于中小团队来说&#xff0c;由于不需要繁琐的流程和高频的异地沟通&#xff0c;需要一款更适合中小团队的日程和项目管理工具。而Prowork就是这样一款敏捷高效的协同平台。Prowork与以往各种项目管理⼯具最⼤的不同在于&#xff0c;其弱化流程和弱化权限的特性&#xff0c;不…...

Linux自定义系统服务

文章目录一. Linux系统服务二. 自定义系统服务一. Linux系统服务 Linux 系统服务有时也称为守护程序&#xff0c;是在Linux启动时自动加载并在Linux退出时自动停止的系统任务&#xff0c;CentOS 7.x开始&#xff0c;CentOS开始使用 systemd服务来代替 daemon &#xff0c;原来…...

mongodb lambda 查询插件

需求背景需要一个像mybatis plus 一样的基于lambda, 且面向对象的查询mongo数据的插件。在网上找了很久&#xff0c;没有发现有类似功能的插件。于是自己手写了一个&#xff0c;借助mongoTemplate屏蔽了底层查询语句的实现细节。在此基础上&#xff0c;实现了查询的统一封装。技…...

C++设计模式(16)——责任链模式

亦称&#xff1a; 职责链模式、命令链、CoR、Chain of Command、Chain of Responsibility 意图 责任链模式是一种行为设计模式&#xff0c; 允许你将请求沿着处理者链进行发送。 收到请求后&#xff0c; 每个处理者均可对请求进行处理&#xff0c; 或将其传递给链上的下个处理…...

springmvc+jsp电影院购票售票选座推荐网站java ssm

本电影购票推荐网站以SSM作为框架&#xff0c;B/S模式以及MySql作为后台运行的数据库。本系统主要包括以下功能模块&#xff1a;个人中心、用户管理、电影信息管理、电影类型管理、影院信息管理、系统管理、订单管理等模块&#xff0c;通过这些模块的实现能够基本满足日常电影购…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...