JavaScript Array相关方法
JavaScript 标准内置对象 Array
- 常用方法
- Array.prototype.every()
- Array.prototype.some()
- Array.prototype.filter()
- Array.prototype.find()
- Array.prototype.findIndex()
- Array.prototype.indexOf()
- Array.prototype.includes()
- Array.prototype.map()
- 其他
- 1. [JavaScript数组去重](https://blog.csdn.net/pro_fan/article/details/111873072)
- 2. [JavaScript 数据拷贝](https://blog.csdn.net/pro_fan/article/details/105224881)
JavaScript的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。
常用方法
Array.prototype.every()
点击查看MDN对该方法的解释
every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
注意: 若收到一个空数组,此方法在一切情况下都会返回 true。
语法: arr.every(callback[, thisArg])
参数
- callback: 用来测试每个元素的函数,它可以接收三个参数:
- element: 用于测试的当前值。
- index(可选): 用于测试的当前值的索引。
- array(可选): 调用 every 的当前数组。
- thisArg(可选): 执行 callback 时使用的 this 值。
- callback: 用来测试每个元素的函数,它可以接收三个参数:
返回值
- 如果回调函数的每一次返回都为 true值,该方法返回 true ,否则返回 false。
Array.prototype.some()
点击查看MDN对该方法的解释
some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。
注意:如果用一个空数组进行测试,在任何情况下它返回的都是false。
语法: arr.some(callback(element[, index[, array]])[, thisArg])
参数
- callback: 用来测试每个元素的函数,接受三个参数:
- element: 数组中正在处理的元素。
- index 可选: 数组中正在处理的元素的索引值。
- array可选: some()被调用的数组。
- thisArg可选: 执行 callback 时使用的 this 值。
- callback: 用来测试每个元素的函数,接受三个参数:
返回值
数组中有至少一个元素通过回调函数的测试就会返回true;所有元素都没有通过回调函数的测试返回值才会为false。
Array.prototype.filter()
点击查看MDN对该方法的解释
filter() 方法创建一个新数组, 其中包含通过指定函数功能测试的所有元素。
简而言之,filter() 方法对数组进行过滤操作,返回符合条件的新数组。
注意: filter() 不会对空数组进行检测,不会改变原数组,它返回过滤后的新数组。
语法: var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
参数
- callback: 用来测试数组的每个元素的函数。返回 true 表示该元素通过测试,保留该元素,false 则不保留。它接受以下三个参数:
- element: 数组中当前正在处理的元素。
- index(可选): 正在处理的元素在数组中的索引。
- array(可选): 调用了 filter 的数组本身。
- thisArg(可选): 执行 callback 时,用于 this 的值。
- callback: 用来测试数组的每个元素的函数。返回 true 表示该元素通过测试,保留该元素,false 则不保留。它接受以下三个参数:
返回值
- 一个新的、由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。
Array.prototype.find()
点击MDN对该方法的解释
find() 方法返回数组中满足测试函数的第一个元素的值。否则返回 undefined。
语法: arr.find(callback[, thisArg])
参数
- callback: 在数组每一项上执行的函数,接收 3 个参数:
- element: 当前遍历到的元素。
- index(可选): 当前遍历元素的索引。
- array可选: 数组本身。
- thisArg(可选): 执行回调时用作this 的对象。
返回值
- 数组中第一个满足所提供测试函数的元素的值,否则返回 undefined。
Array.prototype.findIndex()
点击查看MDN对该方法的解释
findIndex()方法返回数组中满足测试函数的第一个元素的索引。否则返回-1。
语法: arr.findIndex(callback[, thisArg])
参数
- callback: 针对数组中的每个元素, 都会执行该回调函数, 执行时会自动传入下面三个参数:
- element: 当前元素。
- index: 当前元素的索引。
- array: 调用findIndex的数组。
- thisArg(可选): 执行callback时作为this对象的值.
- callback: 针对数组中的每个元素, 都会执行该回调函数, 执行时会自动传入下面三个参数:
返回值
- 数组中通过提供测试函数的第一个元素的索引。否则,返回-1。
如果需要找到一个元素的位置或者一个元素是否存在于数组中,使用Array.prototype.indexOf() 或 Array.prototype.includes()。
Array.prototype.indexOf()
点击查看MDN对该方法的解释
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
语法:arr.indexOf(searchElement[, fromIndex])
- 参数:
- searchElement:要查找的元素。
- fromIndex(可选):开始查找的位置。如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回-1。
- 返回值:
- 首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1。
Array.prototype.includes()
includes() 方法用来判断一个数组是否包含一个指定的值,如果包含则返回 true,否则返回false。
语法:arr.includes(valueToFind[, fromIndex])
- 参数
- valueToFind: 需要查找的元素值。
- fromIndex(可选): 从fromIndex 索引处开始查找 valueToFind。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜 (即使从末尾开始往前跳 fromIndex 的绝对值个索引,然后往后搜寻)。默认为 0。
- 返回值:
- 返回一个布尔值,如果在数组中找到了(如果传入了 fromIndex ,表示在 fromIndex 指定的索引范围中找到了)则返回 true 。
使用 includes()比较字符串和字符时是区分大小写。
Array.prototype.map()
点击查看MDN对其的解释
- map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
- map() 方法按照原始数组元素顺序依次处理元素。
- map() 不会对空数组进行检测。
- map() 不会改变原始数组。
var new_array = arr.map(function callback(currentValue[, index[, array]]) {// Return element for new_array
}[, thisArg])
- 参数
- callback: 生成新数组元素的函数,使用三个参数:
- currentValue: callback 数组中正在处理的当前元素。
- index(可选): callback 数组中正在处理的当前元素的索引。
- array(可选): map 方法调用的数组。
- thisArg(可选): 执行 callback 函数时值被用作this。
- callback: 生成新数组元素的函数,使用三个参数:
其他
1. JavaScript数组去重
2. JavaScript 数据拷贝
—— END ——
相关文章:

Web API之基于H5客户端分段上传大文件
http://www.cnblogs.com/OneDirection/articles/7285739.html 查询很多资料没有遇到合适的,对于MultipartFormDataStreamProvider 也并是很适合,总会出现问题。于是放弃,使用了传统的InputStream 分段处理完之后做merge处理。 前台分段规则 命…

对MySQL进行逻辑卷备份与恢复
ZRM 我之前我介绍过,这里就不多少了。以下是关于用mysql-zrm 来测试 基于LVM 逻辑卷管理的数据库全库备份。我这里用的是SUN 的VBOX 虚拟机来做的测试,基于Red Hat AS 5.3。1. 先建立逻辑卷。fdisk 我就不介绍了,这里演示下怎么用创建逻辑卷以…

医保退费主要流程
1.系统初始化Init GetInvoiceInfo with QryInvoice dobeginClose;ParamByName(DanJuID).AsString:edtDjid.Text;Open;vJiuZhenID:FieldByName(JiuZhenID).AsInteger;GetClinicInfo(vJiuZhenID);//获得就诊信息pnlDjrq.Caption:FieldByName(SerialNo).AsString;pnlSkr.Caption:F…

oo第一单元总结
第一次作业 第一次作业自己虽然很想向着面向对象的方向上写,但写出来还是很C语言式的程序。从头到尾扫描字符串,扫到加减号便认为接下来是一项,再用正则表达式去分情况匹配出这一项。用Hashmap来存储数据,方便合并同类项。最后套一…

npm run build打包失败
使用npm run build命令打包Angular项目时报错,错误信息如下: WARNING in budgets, maximum exceeded for initial. Budget 2 MB was exceeded by 3.33 MB.ERROR in budgets, maximum exceeded for initial. Budget 5 MB was exceeded by 340 kB. npm ER…

YII2 models非常好用的控制输出数据【重写Fields】
models里重写Fields真的很好用,用于分类、评论功能 列子:评论表models/Comment.php 1、关联商品表 2、获取父级(即管理员)评论 public function Fields()//添加parentComment自定义字段输出 { $fields parent::Fields(); $fi…

Visual studio 2005如何实现源码管理
转自CSDN Visual studio 2005如何实现源码管理(Visual Studio .Net团队开发)目录: 〇、 摘要一、 开发前的准备 二、 创建空的SourceSafe数据库 三、 新建项目并加入版本控制 四、 获取SourceSafe中的项目 五、 版本控制的几个概念 六、 版本控制项目的管理 七、 总…

error while loading shared libraries: libstdc++.so.5: wrong ELF class: ELFCLASS64
今天部署一个探针在运行的时候报了这样一个错:error while loading shared libraries: libstdc.so.5: wrong ELF class: ELFCLASS64 [rootdb152 rma_p_unix]# ldd xxxxlinux-gate.so.1 > (0x00dd7000)libstdc.so.5 > not found # 发现这边动态库找不着 这…

package.json 依赖包版本号
依赖包版本号格式:major.minor.patch major 为主版本号(大版本号),变化了表示有了一个不兼容上个版本的大更改。 minor 为次版本号(小版本号),变化了表示增加了新功能,并且可以向后兼容。 patch 为修订版本号,变化了…

.net下绘制统计图工具-请推荐
需要利用到行情、数据频道需要多种样式的表现形式,包括 饼图、柱图、折线图等等 重点是:展示效果好,开发效率高 以前用过dundas chart,不知道有没能生产flash的。 小弟初来乍到,还请给位不吝赐教 放两天置顶ÿ…

wireless(二维数组前缀和)
1 . 无线网络发射器选址(wireless.cpp/c/pas)【问题描述】随着智能手机的日益普及,人们对无线网的需求日益增大。某城市决定对城市内的公共场所覆盖无线网。假设该城市的布局为由严格平行的129条东西向街道和129条南北向街道所形成的网格状,并…

SQL Server 2000 从哪里看是哪个版本
有两种方法: 第一步:使用SQL语句查询 select version 查询结果如下: Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Personal Edition on Windows NT 5.1 (Build 2…

【洛谷p1313】计算系数
(%%%hmr) 计算系数【传送门】 算法呀那个标签: (越来越懒得写辽)(所以今天打算好好写一写) 首先(axby)k的计算需要用到二项式定理: 对于(xy&#…

CMD——ping及用其检测网络故障
Ping命令全称Packet Internet Grope,即因特网包探测器。通过调用ICMP(因特网控制报文协议),发送一份ICMP回显请求给目的主机,并等待返回ICMP回显应答。一般用来测试源主机到目的主机网络的连通性(只有在安装…

TSLint 规则
除了在全局配置中使用TSLint规则,还可以在文件中使用TSLint规则。 当不想修改全局配置中的TSLint规则时,可以在文件中使用以下注释规则标志对TSLint规则进行修改。 // tslint:disable —— 忽略该行以下所有代码出现的错误提示,可以在文件首…

Weblogic禁用SSLv3和RC4算法教程
weblogic在启用https时一样会报同WebSphere那样的一SSL类漏洞,中间件修复这些漏洞原理上来说是一样的,只是在具体操作上有着较大的区别。 1. weblogic禁用SSLv3算法 编缉$DOMAIN_HOME/bin目录下的setDomainEnv.sh,找到"JAVA_OPTIONS&quo…

转《两个个很形象的依赖注入的比喻》
何谓控制反转(IoC Inversion of Control),何谓依赖注入(DI Dependency Injection)?一直都半懂不懂,今天看到两个比喻,觉得比较形象。 IoC,用白话来讲,就是…

线程上下文设计模式
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.stream.IntStream;public class Test {public static void main(String[] args){ThreadLocalExample.test();} }/*21.2 线程上下文设计*/class ApplicationConfigurat…

自定义控件--基础2
Control类程序按控件的步骤: 呈现控件的步骤 1.RenderControl方法 代码如下: protected void RenderControl(HtmlTextWriter writer) { if(Visible) { Render(writer);}} 先判断Visible,然后进行Render.2.Render方法 public virtual void Render(HtmlTextWriter writer) { Rend…

input输入框为number类型时,去掉上下小箭头
input输入框type为number时,去掉上下小箭头,方式如下: <input type"number" ...><style>/* 在Chrome浏览器下 */input::-webkit-outer-spin-button,input::-webkit-inner-spin-button {-webkit-appearance: none;}/* 在…

数据库和数据仓库的区别
简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。 数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余&a…

我是主考官:两次弃用的变态笔试题
故事(3):两次弃用的变态笔试题电话的沟通虽然不可能对一个程序员作全面的了解,但基本上能有一个比较概括的判断,这也许就是所谓的第一印象吧!通过电话的初步沟通我对来面试的程序员已经有了初步的印象&…

[Swift]LeetCode901. 股票价格跨度 | Online Stock Span
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址&a…

java基础===点餐系统
public class OrderMsg {public static void main(String[] args) throws Exception { /** * 订餐人姓名、选择菜品、送餐时间、送餐地址、订单状态、总金额 * 01.创建对应的数组 * 02.数组的初始化 * 03.显示菜单 * 04.根据用户的选择进去指定的模块 */ String[] names new S…

HTML页面中使两个div并排显示
在HTML中实现两个div并排显示,方法如下: 方法1:设置float浮动对需要并排显示的div设置样式:style"float:left;" <div style"float:left;">div1</div>方法2:设置div为行内样式对需要并…

备案网站管理系统是JSP做的
备案网站管理系统 http://www.miibeian.gov.cn/ 浪费了我一上午的时间没成功.靠!转载于:https://www.cnblogs.com/splyn/archive/2009/12/24/1631281.html

explorer.exe应用程序错误说明 0X000000该内存不能为read的解决方法
0X000000该内存不能为read的解决方法 出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。 一:先说说硬件: 一般来说,电脑硬件是很不容易坏的。内存出现问题的可能…

CSS 选择符
选择符 selector 样式的基本规则——样式声明与关键字 声明块中有一个或多个声明。声明的格式是固定的,先是属性名,然后是冒号,后面再跟属性值和分号。冒号和分号后面可以有零个或多个空白。属性值几乎都是一个关键字或以空格分隔的多个关键…

CSS3快学笔记
在编写CSS3样式时,不同的浏览器可能需要不同的前缀。它表示该CSS属性或规则尚未成为W3C标准的一部分,是浏览器的私有属性,虽然目前较新版本的浏览器都是不需要前缀的,但为了更好的向前兼容前缀还是少不了的。 前缀 浏览器 -webk…

DOS批处理的字符串功能
DOS批处理的字符串功能 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集。批处理中可实现的字符串处理功能有:截取字符串内容、替换字符串特定字段、合并字符串、扩充字符串等功能。下面对这些功能一一进行讲解。 【 …