分享20个Javascript中的数组方法,收藏

STK轨道仿真环境搭建实战:从地月系到多天体场景 本文详细介绍了STK轨道仿真环境搭建的实战指南,从基础的地月系统到复杂的多天体场景。通过逐步操作说明和实用技巧,帮助用户快速掌握STK软件的使用方法,提升轨道仿真效率,适用于航天任务设计和教学演示。 阅读详情

什么是数组?与其他编程语言中的数组一样,Array对象允许在一个变量名称下存储多个项的集合,并且具有用于执行常见数组操作的成员。

声明数组

我们可以用两种不同的方式声明数组。

使用新阵列

使用new Array,我们可以指定希望存在于数组中的元素,如下所示:

const fruits = new Array('Apple', 'Banana');
console.log(fruits.length);

数组文字表示法

使用数组文本声明,我们指定数组将具有的值。如果我们不声明任何值,数组将为空。

// 'fruits' array created using array literal notation.
const fruits = ['Apple', 'Banana'];
console.log(fruits.length);

Javascript数组方法

下面是Array对象的方法列表及其说明。

1.forEach

forEach()方法为每个数组元素执行一次提供的函数。

array.forEach(callback[, thisObject]);

forEach()按索引升序为数组中的每个元素调用一次提供的callbackFn函数。对于已删除或未初始化的索引属性,不会调用它。

const array1 = ['a', 'b', 'c'];

array1.forEach(element => console.log(element));

// expected output: "a"
// expected output: "b"
// expected output: "c"

2.map

该Array.map()方法允许您循环访问数组并使用回调函数修改其元素。然后将对数组的每个元素执行回调函数。

array.map(callback[, thisObject]);
let arr = [3, 4, 5, 6];

let modifiedArr = arr.map(function(element){
   return element *3;
});

console.log(modifiedArr); // [9, 12, 15, 18]

该Array.map()方法通常用于对元素应用某些更改,无论是像上面的代码中那样乘以特定的数字,还是执行应用程序可能需要的任何其他操作。

3.concat

在JavaScript中,concat()是一个字符串方法,用于将字符串连接在一起。concat()方法将一个或多个字符串值附加到调用字符串,然后将连接结果作为新字符串返回。因为concat()方法是String对象的方法,所以必须通过String类的特定实例调用它。

array.concat(value1, value2, ..., valueN);
const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);

console.log(array3);
// expected output: Array ["a", "b", "c", "d", "e", "f"]

4.push

Javascript数组push()方法将给定的元素追加到数组的最后,并返回新数组的长度。当您想在数组末尾添加元素时,请使用push()。

array.push(element1, ..., elementN);

const countries = ["Nigeria", "Ghana", "Rwanda"];

countries.push("Kenya");

console.log(countries); // ["Nigeria","Ghana","Rwanda","Kenya"]

5.pop

pop()方法从数组中移除最后一个元素,并将该值返回给调用方。如果对空数组调用pop(),它将返回undefined。

Array.prototype.shift()的行为与pop()类似,但应用于数组中的第一个元素。

array.pop();
const plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];

console.log(plants.pop());
// expected output: "tomato"

console.log(plants);
// expected output: Array ["broccoli", "cauliflower", "cabbage", "kale"]

6.splice

splice()方法是一种通用方法,用于通过在数组的指定位置删除、替换或添加元素来更改数组的内容。本节将介绍如何使用此方法将元素添加到特定位置。

array.splice(index, howMany, [element1][, ..., elementN]);
const fruits = ["Banana", "Orange", "Apple", "Mango"];

fruits.splice(2, 0, "Lemon", "Kiwi"); //Banana,Orange,Lemon,Kiwi,Apple,Mango

7.slice

slice()方法将数组的一部分的浅副本返回到从头到尾(不包括end)选择的新数组对象中,其中start和end表示该数组中项的索引。原始阵列不会被修改。

array.slice( begin [,end] );
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];

console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]

console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]

8.shift

shift()是一个内置的JavaScript函数,用于从数组中删除第一个元素。shift()函数直接修改您正在使用的JavaScript数组。shift()返回从数组中移除的项。

函数的作用是:删除索引位置0处的项,并将未来索引号处的值下移一位。

array.shift();
const array1 = [1, 2, 3];

const firstElement = array1.shift();

console.log(array1);
// expected output: Array [2, 3]

console.log(firstElement);
// expected output: 1

9.unshift

unshift()方法将给定值插入到类似数组的对象的开头。

push()的行为与unshift()类似,但应用于数组的末尾。

array.unshift( element1, ..., elementN );
const array1 = [1, 2, 3];

console.log(array1.unshift(4, 5));
// expected output: 5

console.log(array1);
// expected output: Array [4, 5, 1, 2, 3]

10.join

JavaScript数组join()是一个内置方法,它通过连接数组的所有元素来创建并返回新字符串。join()方法将数组中的项连接到字符串中并返回该字符串。指定的分隔符将分隔元素数组。默认分隔符为逗号(,)。

array.join(separator);
const elements = ['Fire', 'Air', 'Water'];

console.log(elements.join());
// expected output: "Fire,Air,Water"

console.log(elements.join(''));
// expected output: "FireAirWater"

console.log(elements.join('-'));
// expected output: "Fire-Air-Water"

11.every

every()方法测试数组中的所有元素是否通过所提供函数实现的测试。它返回一个布尔值。

array.every(callback[, thisObject]);
const isBelowThreshold = (currentValue) => currentValue < 40;

const array1 = [1, 30, 39, 29, 10, 13];

console.log(array1.every(isBelowThreshold));
// expected output: true

12.filter

filter()方法创建给定数组的一部分的浅副本,过滤掉给定数组中通过所提供函数实现的测试的元素。

array.filter(callback[, thisObject]);
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]

13.indexOf

indexOf()方法返回给定元素在数组中的第一个索引,如果不存在,则返回-1。

array.indexOf(searchElement[, fromIndex]);
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];

console.log(beasts.indexOf('bison'));
// expected output: 1

// start from index 2
console.log(beasts.indexOf('bison', 2));
// expected output: 4

console.log(beasts.indexOf('giraffe'));
// expected output: -1

14.reduce

reduce()方法对数组的每个元素执行用户提供的“reducer”回调函数,依次传入前一个元素计算的返回值。在数组的所有元素上运行reducer的最终结果是单个值。

array.reduce(callback[, initialValue]);
const array1 = [1, 2, 3, 4];

// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce(
  (previousValue, currentValue) => previousValue + currentValue,
  initialValue
);

console.log(sumWithInitial)

15.reverse

reverse()方法在原处反转数组并返回对同一数组的引用,第一个数组元素现在变为最后一个,最后一个数组元素变为第一个。换句话说,阵列中的元素顺序将转向与前述相反的方向。

array.reverse();
const array1 = ['one', 'two', 'three'];
console.log('array1:', array1);
// expected output: "array1:" Array ["one", "two", "three"]

const reversed = array1.reverse();
console.log('reversed:', reversed);
// expected output: "reversed:" Array ["three", "two", "one"]

// Careful: reverse is destructive -- it changes the original array.
console.log('array1:', array1);
// expected output: "array1:" Array ["three", "two", "one"]

16.sort

sort()方法对数组中的元素进行排序,并返回对已排序的同一数组的引用。默认的排序顺序是升序,它是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列的基础上构建的。

array.sort( compareFunction );
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]

const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]

17.toString

toString()方法返回表示对象的字符串。

array.toString();
function Dog(name) {
  this.name = name;
}

const dog1 = new Dog('Gabby');

Dog.prototype.toString = function dogToString() {
  return `${this.name}`;
};

console.log(dog1.toString());
// expected output: "Gabby"

18.at

at()方法接受一个整数值并返回该索引处的项,允许使用正整数和负整数。负整数从数组中的最后一项开始倒数。

array.at(index)
const array1 = [5, 12, 8, 130, 44];

let index = 2;

console.log(`Using an index of ${index} the item returned is ${array1.at(index)}`);
// expected output: "Using an index of 2 the item returned is 8"

index = -2;

console.log(`Using an index of ${index} item returned is ${array1.at(index)}`);
// expected output: "Using an index of -2 item returned is 130"

19.find

find()方法返回所提供的数组中满足所提供的测试函数的第一个元素。如果没有值满足测试函数,则返回undefined。

array.find(function(currentValue, index, arr),thisValue)
const array1 = [5, 12, 8, 130, 44];

const found = array1.find(element => element > 10);

console.log(found);
// expected output: 12

20.some

some()方法测试数组中是否至少有一个元素通过了所提供函数实现的测试。如果在数组中找到一个元素,所提供的函数为该元素返回true,则返回true;否则返回假。它不会修改数组。

array.some(callback[, thisObject]);
const array = [1, 2, 3, 4, 5];

// checks whether an element is even
const even = (element) => element % 2 === 0;

console.log(array.some(even));
// expected output: true

你学会了吗?如果对你有帮助,记得点赞支持!如果你正在学习JS或者已经在我们的三十天计划中完成了4个综合项目实战,那不妨可以听下这个课程体系,三十天计划群里还提供了算法、数组等知识体系!

前端工程师成长方法

更多完整 JavaScript 课程体系在我们的系统班里有完整的呈现,包含了 JavaScript 基础篇、重点、算法、原理、面试题、实战案例讲解!同时也为你提供了前端高级工程师成长体系!(详细看下图内容)

如果需要深度学习的同学可以联系助理老师了解详细的课程以及课程的报名方式!(不定期会推出活动,有大额优惠券推出,活动详情联系助理老师了解即可!)如果你才开始学习前端,那么可以先学习我们的三十天计划(零基础的同学报名系统班同学可以和老师沟通制定学习计划,可以得到更快的成长!)

为帮助到一部分同学不走弯路,真正达到一线互联网大厂前端项目研发要求,首次实力宠粉,打造了《30 天挑战学习计划》,内容如下:

HTML/HTML5,CSS/CSS3,JavaScript,真实企业项目开发,云服务器部署上线,从入门到精通

  • PC 端项目开发(1 个)
  • 移动 WebApp 开发(2 个)
  • 多端响应式开发(1 个)

共 4 大完整的项目开发 !一行一行代码带领实践开发,实际企业开发怎么做我们就是怎么做。从学习一开始就进入工作状态,省得浪费时间。

从学习一开始就同步使用 Git 进行项目代码的版本的管理,Markdown 记录学习笔记,包括真实大厂项目的开发标准和设计规范,命名规范,项目代码规范,SEO 优化规范

从蓝湖 UI 设计稿 到 PC 端,移动端,多端响应式开发项目开发

  • 真机调试,云服务部署上线;
  • Linux 环境下 的 Nginx 部署,Nginx 性能优化;
  • Gzip 压缩,HTTPS 加密协议,域名服务器备案,解析;
  • 企业项目域名跳转的终极解决方案,多网站、多系统部署;
  • 使用 使用 Git 在线项目部署;

这些内容在《30 天挑战学习计划》中每一个细节都有讲到,包含视频 + 图文教程 + 项目资料素材等。只为实力宠粉,真正一次掌握企业项目开发必备技能,不走弯路 !

过程中【不涉及】任何费用和利益,非诚勿扰 。

如果你没有添加助理老师微信,可以添加下方微信,说明要参加 30 天挑战学习计划,来自优快云!老师会邀请你进入学习,并给你发放相关资料。

30 天挑战学习计划 Web 前端从入门到实战 | arry老师的博客-艾编程

vue2/3 - 详细对接海康监控实时视频预览和录像回放功能,vue接入使用海康视频监控播放器实时推流等功能,支持hik/rtsp/rtmp/hls/ws取流协议(详细教程与示例代码,一键复制开箱即用 vue2,vue3,海康,vue海康视频监控,海康开放平台,如何接入海康的实时监控,海康威视,Vue实现海康监控视频播放,vue3对接海康视频监控播放、回放的方法流程,实现海康H5视频插件播放视频的实例,web网页接入海康,海康威视的视频vue的录像回放和实时预览,前端vue3项目接入海康威视h5player.js播放器,vue2接入海康威视视频监控平台,使用海康监控H5视频播放,对接海康视频监控,海康视频web插件,web前端在vue中通过海康插件嵌入视频,实现实时预览,vue3海康监控播放器组件,vue 阅读详情

相关推荐

《Ventoy 制作系统安装 U 盘的具体步骤》

然后您可以在电脑的磁盘管理中对 U 盘进行快速格式化,选择 FAT32 或 NTFS 文件系统。至此,Ventoy 系统安装 U 盘就制作完成了。您可以在需要安装系统的电脑上,从 U 盘启动,然后选择相应的系统镜像进行安装。安装完成后,将您需要的操作系统镜像文件(如 Windows、Linux 等的 ISO 格式镜像)复制到 U 盘的根目录。在安装程序中,选择您插入的 U 盘设备,确保选择正确,以免误操作。2. 确认选择的 U 盘盘符正确,防止误操作导致其他磁盘数据丢失。点击“安装”按钮,等待安装完成。

jiyiwangluokeji的博客 2673

JavaScript数组方法(最全)

JavaScript数组常用方法(最全) 今天我们对JavaScript的数组以及对象的方法做一个总结,方便与以后的开发与查询,多多收藏哦! 1. push() push方法可以向数组的末尾添加一个或者多个元素,并返回新的长度. 2. pop() pop() 方法用于删除并返回数组的最后一个元素。 3. unshift() unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。 4. shift() shift() 方法用于把数组的第一个元素从其中删除,并返回第一

weixin_46734347的博客 4万+

h5支付不能打开支付宝 ios_iOS支付宝H5支付无法返回APP解决方案

本文前大段在讲楼主是如何解决这个问题的,以及中间遇到的麻烦。赶时间的同学可以直接看最后的 最终解决方案。在讨论之前,我们先看看官方文档上的一句话:注意:在iOS系统中,唤起支付宝App支付完成后,不会自动回到浏览器或商户APP。用户可手工切回到浏览器或商户APP;支付宝H5收银台会自动跳转回商户return_url指定的页面。what? 官方直接跟我们说GG了?楼主不甘心,还是想尝试一下。借鉴之前...

weixin_39864101的博客 856

JavaScript的20个数组方法详细用法说明

一、删除和插入数据的四个方法 1.push() 数组最后位置压入数据,返回新数组的长度 2.pop() 数组最后位置弹出最后一个元素,返回值是弹出的元素 3.shift() 数组开始位置删除第一位数据,返回值是删除的元素 4.unshift() 数组开始位置插入一个元素,返回新数组的长度 总结: 第一个相同点四个方法是相对应来记的,俩开始方法,俩结束方法,从汉语意思来记,push中文意思压入,pop中文弹出,shift中文移动,引申为移出、删除,unshift则就是插入。 第二个相同的地方是,这四个方法中

LoveYouZsw的博客 808

模型训练篇 | 手把手教你使用ResNet训练自己数据集和推理,ResNet50通用物体分类识别,含完整代码和数据集,全网最详细教程

手把手教你使用ResNet训练自己数据集和推理,ResNet50通用物体分类识别,含完整代码和数据集,全网最详细教程。本篇文章将带你学习 ResNet50 模型构建、ResNet50训练自己数据集、数据集处理、推理和验证、模型剪枝与模型改进等。 本篇教程适配各种分类识别任务,可以说是一个通用的教程,只需修改自己的数据集即可完成自己领域的任务和系统实现。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 735

泰凌微8258入门教程 环境篇④——开发板+烧录器 8258mesh新手套件购买

工欲善其事,必先利其器。 淘宝链接:https://item.taobao.com/item.htm?

4130

盘点JavaScript中数组所有的方法

JavaScript数组方法大全

2403_87076697的博客 1886

C++软件调试与异常排查从入门到精通专栏介绍与文章汇总

根据近几年排查软件异常的实践与经验,系统地讲解了C++软件异常常见原因与常用排查方法,以图文并茂的方式给出具体的分析实例,带领大家逐步掌握C++软件异常排查的相关技术与要领。

dvlinker的技术专栏 23万+

JavaScript中的数组方法总结

javaScript常用数组方法 顺序 方法名 功能 返回值 是否改变原数组 版本 1 push() (在结尾)向数组添加一或多个元素 返回新数组长度 Y ES5- 2 unshift() (在开头)向数组添加一或多个元素 返回新数组长度 Y ES5- 3 pop() 删除数组的最后一位 返回被删除的数据 Y ES5- 4 shift() 删除首个数组元素,并把所有其他元素“位移”到更低的索引 返回被删除的数据 Y ES5- 5 reverse() 反转数组中的元素 返回反转后数组 Y ES5- 6 so.

zty654321的博客 2297

Android 13 Settings蓝牙列表卡顿问题排查及优化过程

此时我们的卡顿优化基本完成了,我们应该要考虑内存是否会泄漏,如果大家不知道哪些需要回收可以用leakcanary和android profiler进行内存检测,看代码有没有内存泄漏。

龚礼鹏的博客 2548

ACS运动控制器编程语言

ACS运动控制器采用SPiiPlusLanguage(SPL)作为核心编程语言,该语言基于C语法设计,内置丰富的运动控制指令,支持点位运动、插补等复杂控制。控制器提供专用开发工具SPiiPlusManager和ACSStudio,支持图形化编程与调试。同时兼容TCP/IP、EtherCAT等多种扩展接口,便于与上位机或PLC集成。使用时需注意实时性优先级、轴参数匹配等关键事项。官方文档和示例程序为开发者提供了完善的学习资源。

StevenChen的博客 626

【JavaScript】——JS数组的方法(全且详细)

js数组中的方法

qq_50497708的博客 5209

uniapp - 解决 uni.chooseImage 在苹果 IOS 真机上点击没反应的问题,苹果手机点击 uni.chooseImage方法不生效,也不报任何错误(解决苹果ios系统点击无效问题)

uniapp小程序h5网页苹果ios系统点击uni.chooseImage不执行点击无效,uniapp使用uni.chooseImage方法点击没反应怎么办,uniappuni.chooseImage在ios苹果手机运行点击不触发,uniappuni.chooseImage苹果ios系统点击无效,uniapp项目ios端云打包之后uni.chooseImage不生效了,uniapp打包之后uni.chooseImage()无法打开相机,uniapp苹果手机无法打开相机和相册,uniapp网页h5微信支

🏆 前端领域优质创作者 1万+

js数组方法大全

很早之前就想整明白JS到底有多少操作数组的方法,是怎么使用的,今天正好找到了个比较好的总结,分享给大家 原文地址:https://www.cnblogs.com/obel/p/7016414.html JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组 var arr2 = new Array(20); ...

brunya的博客 7万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

JavaScript中数组;JavaScript中对象及方法;笔记分享;知识回顾

JS数组创建;JS数组使用;JS数组方法;JS中String对象方法;JS中Number属性,方法;JS中Math对象;JS中Date对象方法;笔记分享;知识回顾

weixin_72637723的博客 1320

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JavaScript ES6语法中的数组常用方法

在现代Web前端开发中,JavaScript作为核心语言之一,其ES6(ECMAScript 2015)引入了大量新特性,极大地提升了代码的可读性和开发效率。其中,数组作为JavaScript中最常见的数据结构之一,在ES6中得到了显著增强,提供了许多强大的内置方法。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。方法是ES6中非常重要的一个数组方法,它会返回一个新数组,其中每个元素都是调用回调函数的结果。方法返回数组中第一个满足条件的元素,而。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1166

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Javascript :语法】JS删除数组里的某个元素方法

转载: JS删除数组里的某个元素方法 下面小编就为大家分享一篇JS删除数组里的某个元素方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 删除数组指定的某个元素 js删除数组中某一项或几项的几种方法 https://www.jb51.net/article/154737.htm 首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: ...

weitaming1的博客 7988

JS中的类数组以及类数组转数组的方法

JS中类数组转数组的方法(ArrayLike) 1、首先我们要清楚什么是类数组(ArrayLike) 拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理,这里你可以当做是个非负整数串来理解) 不具有数组的所有方法 2、JavaScript中常见的类数组 arguments对象 DOM方法返回结果(getElementsByTagName()、getElemen...

z-ying-jian的博客 672

28个常用的JavaScript 数组方法备用清单

关注公众号前端开发博客,回复“加群”加入我们一起学习,天天进步英文:https://sahinur.medium.com/javascript-array-methods-cheatsh...

前端开发博客 6307

JavaScript 数组方法完整指南

提高代码可读性减少代码量提升开发效率优化程序性能操作的目的返回值需求性能要求代码可读性浏览器兼容性。

涂涂 933

JavaScript 数组常用方法详解

🤍 前端开发工程师、技术日更博主、已过CET6🍨、23年度博客之星前端领域TOP1🕠高级专题作者、打造专栏🍚签约作者、上架课程💬 前些天发现了一个巨牛的,通俗易懂,风趣幽默,忍不住分享一下给大家。。

你若盛开,清风自来 1129

JavaScript 中的 `findIndex` 方法

在 JavaScript 中,数组是一种非常常见且功能强大的数据结构。为了更方便地处理数组中的数据,ECMAScript 5 引入了许多有用的数组方法,其中之一就是findIndex方法。findIndex方法用于查找数组中满足特定条件的第一个元素的索引,并返回该索引。如果没有找到满足条件的元素,则返回-1。findIndex方法是处理数组时非常有用的工具,它可以帮助我们快速找到满足特定条件的第一个元素的索引。通过合理使用callback函数和thisArg参数,我们可以更灵活地处理各种复杂的数据结构。

你若盛开,清风自来 2562

js数组倒序的方法,分享7种倒序方法

选择哪种方法取决于你的具体需求,例如是否需要修改原数组,以及是否需要保持代码的简洁性。如果你需要保持原数组不变,使用 slice().reverse() 是一个好的选择。如果你不想修改原数组,可以先使用 slice() 方法创建一个数组的副本,然后调用 reverse()。reverse() 是数组的一个内置方法,它会原地修改数组,将数组中的元素顺序颠倒。reduceRight() 方法从数组的末尾开始,可以用于构建一个倒序的数组。使用 ES6 的解构赋值,可以创建一个倒序的数组。,转载请保留本文地址!

web前端开发博客 3557

JavaScript 对象数组常用方法详解

🤍 前端开发工程师、技术日更博主、已过CET6🍨、23年度博客之星前端领域TOP1🕠高级专题作者、打造专栏🍚签约作者、上架课程💬 前些天发现了一个巨牛的,通俗易懂,风趣幽默,忍不住分享一下给大家。。

你若盛开,清风自来 798

JavaScript 2 ,JavaScript判断数组的7种方法,使用详细(JS判断数组的方法,JS判断数据的方法)

⭐在开发中,JavaScript 作为一门核心编程语言扮演着极其重要的角色。无论是处理用户交互、操作DOM元素还是进行复杂的逻辑运算,JavaScript都提供了丰富的功能来满足开发者的需求。在编写JavaScript代码时,我们经常需要处理各种类型的数据,其中数组是一种非常常用且强大的数据结构。然而,在某些情况下,确定一个给定的数据是否为数组变得至关重要,尤其是在进行类型检查或执行特定于数组的操作之前。这里分享记录,判断数组的7种方法。

AI Agent 全栈架构师(AI + GIS + Backend)& 数字芯片系统架构师(FPGA),NorthCity Smile的博客(NcSmile,博主域名:https://ncmile.blog.youkuaiyun.com) 1709

JavaScript中数组的方法梳理

一个是ES5 另一个是ES6,虽然现在已经到ES N个版本了 但是现在统一ES5以后的都叫ES6。以上就是我认为常用的数组方法,我还有特别标注的,更要牢记啦,希望这个干活能够帮到你。所以我帮各位小伙伴梳理一下,我们这里先说一下数组的方法 我们知道 我们的JS有两个版本的。我知道很多小伙伴学习我们原生JS的方法的时候很懵,比方说数组的方法,字符串的方法等等。

Ahkydijd的博客 775
上一篇: JavaScript普通函数与箭头函数有怎样的区别?
下一篇: 10 个你需要熟悉的 CSS3 属性
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾编程前端技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值