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

js数组学习(ES6+)

文章目录

        • js(ES6+)数组学习
          • 1.Array.prototype.forEach(fn)
          • 2.Array.prototype.map(fn)
          • 3.Array.prototype.filter(fn)
          • 4.Array.prototype.reduce(fn)
          • 5.Array.prototype.some(fn) every
          • 6.Array.prototype.find(fn)
          • 7.Array.prototype.includes(item)

js(ES6+)数组学习

1.Array.prototype.forEach(fn)

遍历数组,传一个函数,每次遍历会运行该函数


const arr = [45, 7, 2, 4, 1, 57, 3]// for (const item of arr) {
//     console.log(item);
// }// arr.forEach(function(item){
//     console.log(item);
// });//遍历时函数里其实有三个参数,需要的时候,可以把数据下标和数组本身
arr.forEach(function(item,index,arr){console.log(item,index,arr);
});
2.Array.prototype.map(fn)

数组映射,传入一个函数,映射数组中的每一项,不会改动原数组,然后返回一个新的数组!

const arr = [45, 7, 2, 4, 1, 57, 3]//数组每一项翻倍
const newArr = arr.map(function(item){return item*2;
});
console.log(newArr)//随意用,比如返回一个对象
const newArr1 = arr.map(function(item){return{n : item,doubleN : item*2};
});console.log(newArr1,'newArr1')
3.Array.prototype.filter(fn)

数组筛选,传入一个函数,仅保留满足条件的项。不会改变原数组,然后返回一个新数组!

const arr = [45, 7, 2, 4, 1, 57, 3]
//返回 和原数组一样的内容
const newArr = arr.filter(function (item){return true;
});//返回新数组是个空数组,false把每一项都排除掉了
const newArr1 = arr.filter(function (item){return false;
});//返回奇数数组
const newArr2 = arr.filter(function (item){return item % 2 !== 0;
});
console.log(newArr2)
4.Array.prototype.reduce(fn)

数组聚合,传入一个函数,对数组每一项按照该函数的返回聚合。 数组聚合相对复杂一点,但是多用于求和,简单理解很多项揉成一项就能用reduce。

const arr = [45, 7, 2, 4, 1, 57, 3]const sum = arr.reduce(function(a,b){return a+b;
},0);
console.log(sum,'求和')
/*** 详细分析:* reduce函数里 有两个参数,一个function,第二个默认值0。到底是怎么运行的:* reduce一开始在内部开了一个空间,记录一开始的结果(用result代表)就是第二个参数,为0。* 然后function开始运行,把result为0这个结果给第一项a,我们数组arr第一项 45给b,a始终是* 当前的结果,当前结果是0,45给b,返回a+b=45,result就更新为45,这时候又把result=45 传给a,* arr第二个元素7给b,返回 a+b=52,result就更新为52,再次传给a,往复下去。直到b为3,* return a+b,最终结果为119*/
5.Array.prototype.some(fn) every
const arr = [45, 7, 2, 4, 1, 57, 3]
//只要有一个元素满足条件就返回true,否则false
const result = arr.some(function (item) {return item > 50;
});
console.log(result,'结果')//所有元素都要满足条件返回true,否则false
const result1 = arr.every(function (item) {return item > 0;
});
console.log(result1,'结果1')
6.Array.prototype.find(fn)

传入一个函数,找到数组中第一个能通过改函数测试的项
返回满足条件的元素,但是有两个元素满足条件时候,返回的还是第一个元素,怎么解决。用filter就行。

const arr = [45, 7, 2, 4, 1, 57, 3,54]
const result = arr.find(function(item){return item > 50;
});
console.log(result)
7.Array.prototype.includes(item)

判断数组中是否存在item,判定规则使用的是Object.is。传的不是函数了,传的是元素。//object.is({},{}) object.is(1,1),object.is理解为===

const arr = [45, 7, 2, 4, 1, 57, 3,54]
const result = arr.includes(2)
console.log(result)

相关文章:

js数组学习(ES6+)

文章目录 js(ES6)数组学习1.Array.prototype.forEach(fn)2.Array.prototype.map(fn)3.Array.prototype.filter(fn)4.Array.prototype.reduce(fn)5.Array.prototype.some(fn) every6.Array.prototype.find(fn)7.Array.prototype.includes(item) js(ES6)数组学习 1.Array.protot…...

DoIP诊断入门

简介 DoIP(Diagnosis over Internet Protocol)是一种用于车辆诊断的网络通信协议。它基于现代互联网技术,允许通过以太网或IP网络进行车辆诊断和通信。 DoIP的背景是现代车辆中使用的电子控制单元(ECU)数量不断增加&…...

Amazon CloudFront 部署小指南(五)- 使用 Amazon 边缘技术优化游戏内资源更新发布...

内容简介 游戏内资源包括玩家的装备/弹药/材料等素材,对游戏内资源的发布和更新是游戏运营商的一个常规业务流程,使用频率会十分高,所以游戏运营商希望该流程可以做到简化和可控。针对这个需求,我们设计了 3 个架构,面…...

undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘

使用Crow的时候需要注意crow依赖asio依赖OpenSSL,asio要求1.22以上版本,我使用的是1.26.0; 这个版本的asio要求OpenSSL是1.0.2,其他版本我得机器上编不过,ubuntu上默认带的OpenSSL是1.1.1; 所以我下载了OPENSSL1.2.0重…...

DHCPv6之GitHub项目Android侧验证

一、adb里面安装busybox 1、下载busybox 下载网址:Index of /downloads/binaries/1.21.1 (busybox.net),目前最新是1.21.1版本 根据项目选择busybox-armv7l ,右键另存为下载到本地目录,下载后去掉文件的后缀名,变成如…...

简单易懂的 Postman Runner 参数自增教程

目录 什么是 Postman Runner? Postman Runner 如何实现参数自增? 步骤一:设置全局参数 步骤二:将全局参数带入请求参数 步骤三:实现参数自增 资料获取方法 什么是 Postman Runner? Postman Runner 是…...

BeanFactory与Applicationcontext(1)

BeanFactory是接口,提供了IOC容器最基本的形式,给具体的IOC容器的实现提供了规范。BeanFactory是spring的“心脏”,核心容器,它也是Applicationcontext的父接口。 BeanFactory实质上并未提供过多的方法,spring容器的I…...

C++初阶之模板深化讲解

模板深化讲解 非类型模板模板的特化1.函数模板特化2.类模板特化 模板分离编译1.什么是分离编译2.模板的分离编译 模板总结 非类型模板 非类型模板(Non-Type Template)是 C 中的一种模板形式,它允许你在模板中传递除了类型以外的其他值&#x…...

Redis数据结构——整数集合

定义 整数集合是集合的实现方式之一,当一个集合只包含整数值元素时,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合的底层实现。 整数集合就是存放整数的一个数组,整数集合的结构体定义: typeof struc…...

背上大书包准备面试之CSS篇

目录 H5 新特性 css3新特性? 为什么要初始化css样式? 浏览器兼容性问题? css sprites(css精灵图)? css盒模型是什么样的? 页面中一个块元素的宽度包含了盒模型中的哪些部分?…...

linux系列基本介绍

虽然我们常说Linux操作系统,这种叫法是不正确的,严格意义上讲,Linux并不是操作系统,而是属于操作系统的一个内核,inux内核提供了操作系统的核心功能,如进程管理、内存管理、文件系统等。 Linux有很多不同的…...

vue.draggable浅尝

介绍 Vue.Draggable是一款基于Sortable.js实现的vue拖拽插件。支持移动设备、拖拽和选择文本、智能滚动,可以在不同列表间拖拽、不依赖jQuery为基础、vue 2过渡动画兼容、支持撤销操作,总之是一款非常优秀的vue拖拽组件。本篇将介绍如何搭建环境及简单的…...

Tree相关

1.树相关题目 1.1 二叉树的中序遍历(简单):递归 题目:使用中序遍历二叉树 思想:按照访问左子树——根节点——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候我们按照同样的方式遍历&#xff0…...

git日常操作-案例

文章目录 查看远程有那些分支 查看远程有那些分支 git ls-remote --heads origin...

cmake链接.lib库

当使用CMake编写CMakeLists.txt文件来链接其他文件夹的.lib库文件时,你需要做以下几个步骤: 设置库文件路径: 使用 link_directories() 函数设置要搜索库文件的路径。例如: link_directories(${CMAKE_SOURCE_DIR}/path/to/libra…...

SkyWalking 部署(包含ES)

SkyWalking安装 结构 首先SkyWalking主要需要oapService、webApp、Elasticsearch(可选存储)三个,接下来讲一下这三个的安装步骤,安装过程中出现了一些细小的配置错误,导致用了快两天才弄好,麻木了&#x…...

Android学习之路(2) 设置视图

一、设置视图宽高 ​ 在Android开发中,可以使用LayoutParams类来设置视图(View)的宽度和高度。LayoutParams是一个用于布局的参数类,用于指定视图在父容器中的位置和大小。 ​ 下面是设置视图宽度和高度的示例代码: …...

SIP/VoIP之常见的视频问题

除了语音通话外,视频通话也是SIP协议通话中重要的功能,在实际应用中,经常会遇到一些视频问题,如下(以h264为例) 一、 己方未显示对方视频图像 排查方法: 查看网络抓包中有没有发给已方的视频…...

docker的服务/容器缺少vim问题

背景/问题: docker的服务/容器缺少vim问题 bash: vim: command not found 在docker的mysql服务中安装Vim 1、执行apt-get update root6d8d17e320a0:/# apt-get update问题:文件下载失败 Err:1 http://security.debian.org/debian-security buster/updates InRe…...

HCIP-OpenStack

1、OpenStack概述 OpenStack是一种云操作系统,OpenStack是虚拟机、裸金属和容器的云基础架构。可控制整个数据中心的大型计算、存储和网络资源池,所有资源都通过API或Web界面进行管理。 为什么称OpenStack是云操作系统? 云一般指云计算&…...

React Native 导航系统实战(React Navigation)

导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息&#xff0…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...