数组的常用方法总结

2023-10-30

  1. 获取指定数组的长度 arr.length
console.log(["a", "b", "c"].length ) //  3

通常情况下,如果想判断一个数组是否为空,可以通过数组的长度是否为零来判断。

  1. 数组和字符串的相关转换
    2.1 数组转换为字符串
console.log(["a", "b", "c"].join(""))  // "abc"

该方法会返回一个新的字符串,原来的数组并不会被改变
也可以用Array.toString()方法进行转换

["a", "b", "c"].toString()  // "abc"

该方法会返回一个新的字符串,原来的数组并不会被改变

2.2  字符串转换为数组  
console.log("abc".split(""))  // ["a", "b", "c"]
  1. 遍历数组 arr.forEach()

    当需要对数组进行遍历操作时,可以使用arr.forEach()对其中的每一项进行操作

arr.forEach(item) => {
	item...
} 

该返回不会有返回值,即使用该方法对数组中的项进行操作后,原数组的内容会跟着改变

  1. arr.map()
    该方法也会对数组中的每一项进行操作,但是与forEach方法不同的是,该方法处理后会返回一个新的数组,原来的数组不会改变

    let arr = [1, 2, 3, 4, 5]
    let newArr = arr.map(x => x*2) // newArr = [2, 4, 6, 8, 10] 返回新数组
    conasole.log(arr) // [1, 2, 3, 4, 5]   原数组保持不变
    
  2. Array.filter()
    该方法是将所有元素进行判断,将满足条件的元素作为一个新的数组返回,原数组并不会被改变。在对数组进行过滤的时候很好用,实测!!!
    在这里插入图片描述

  3. Array.every()
    该方法是将所有元素进行判断返回一个布尔值,并不是数组。如果所有元素都满足判断条件,则返回true,否则为false。不会改变原数组
    在这里插入图片描述

  4. Array.some()

    该方法是将所有元素进行判断返回一个布尔值,如果存在元素满足判断条件,则返回true,若所有元素都不满足判断条件,则返回false:不会改变原数组
    在这里插入图片描述

  5. Array.reduce()
    此方法是所有元素调用返回函数,返回值为最后结果,传入的值必须是函数类型,不会改变原数组
    在这里插入图片描述

  6. Array.push()
    此方法是在数组的最后面添加新加元素,该方法会改变原数组

  7. Array.pop()
    此方法在数组后面删除最后一个元素,该方法改变了原数组

  8. Array.unshift()
    unshift() 方法可向数组的开头添加一个或更多元素.

[1,2,3,4,5].shift(6,7)  // [6,7,1,2,3,4,5]
unshift() 方法不创建新的创建,而是直接修改原有的数组  
  1. Array.shift()
    shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值
    在这里插入图片描述
    如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。要删除并返回数组的最后一个元素,使用 pop() 方法

  2. Array.isArray()
    判断一个对象是不是数组,返回的是布尔值

  3. Array.concat()

该方法是一个可以将多个数组拼接成一个数组:

  1. Array.splice(开始位置, 删除的个数,元素)
    万能方法,可以实现增删改
    第二个参数为0, 则表述向原数组中增加项;第三位参数不传,则表示删除原数组中的项,删除个数由第二个参数决定;当第三位参数的长度等于第二位参数的时候,通常可以用来修改原数组
    在这里插入图片描述

  2. arr.indexOf()
    该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。
    如果在数组中没找到指定元素则返回 -1。
    注意,该方法同样适用于字符串

  3. arr.find():查找出第一个符合条件的数组成员,并返回该成员,如果没有找到就返回undefine
    在这里插入图片描述

  4. arr.findIndex() :找到的是位置,找不到返回 -1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数组的常用方法总结 的相关文章

  • 将 Javascript 对象的属性从 string 更改为 int

    我有一个对象数组 每个对象具有三个属性 年份 总计 人均 例子 0 Object per capita 125 8 total 1007 2 year 2009 这些属性是字符串 我想创建一个循环来遍历数组并将它们转换为 int 我尝试了以
  • 位置特征检测:固定

    我正在尝试找到一个脚本来检测设备是否放置position fixed元素相对于视口而不是整个文档 目前 标准桌面浏览器和 Mobile Safari 适用于 iOS 5 都是这样做的 而 Android 设备则相对于整个文档放置固定元素 我
  • 如何正确清理来自 AngularJS 控制器的无效输入的表单?

    我有一个 AngularJS 表单 其中包含 除其他字段之外 类型之一url 后者很重要 因为这会强制相应的输入成为有效的 URL 在某些条件下 例如 要关闭具有此类表单的模式对话框 我想以编程方式清除该表单 为此 我实现了方法reset基
  • 使用 Angular 指令禁用文本选择

    我正在学习 JavaScript 和 AngularJS 我想使用 Angular Directive 禁用文本选择 我有该函数的 JavaScript 代码 function clearSelection if document sele
  • IntersectionObserver是否支持水平滚动观察?

    我制作了几个垂直滚动 IntersectionObserver 模块 但我对水平滚动感兴趣 根将是 div 观察目标将是 img 我想观察当 img 放大但 div 保持视口宽度时的变化 我什至不确定移动 Safari 是否会将缩放后的图片
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • 使用 Google 日历源时如何禁用 FullCalendar 中的活动链接?

    我正在使用 FullCalendar 库从 Google 日历加载日历中的事件 不幸的是 事件添加到日历后 它们是可点击的 当您点击该活动时 您会自动重定向到 Google 日历页面以查看该特定活动 或者如果您有足够的访问权限 则可以直接对
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • 如何从 json 文件创建模型? (ExtJS)

    这是我想使用 json 文件创建的模型 Ext define Users extend Ext data Model fields name user id type int name user name type string 为了根据服
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo

随机推荐

  • CTF工具隐写分离神器Binwalk安装和详细使用方法

    binwalk安装 1 Binwalk 介绍 2 Binwalk下载 3 Windows安装 4 Linux下载安装 5 Binwalk基本用法 6 Binwalk案例展示 7 Binwalk总结 1 Binwalk 介绍 Binwalk
  • 编译出现 error LNK2001: 无法解析的外部符号 “public: virtual struct QMetaObject const * __thiscall Widget::metaObj

    出现这种情况的原因是 可能是以下几种 1 h中是否加上了Q OBJECT宏 2 你的类是否继承了QObject这个类 3 你的这个类确定在 h中进行了声明 然后在 cpp中进行了 4 注意这个信号和槽是后面加入的话 注意你的moc文件是否生
  • 【IDEA】Git切换分支checkout后,没有maven/maven失效/找不到maven项目

    解决办法1 找到项目pom xml 右键选择add as a maven project 导入maven 解决办法2 在terminal命令行mvn clean清除maven 再安装mvn install Dmaven test skip
  • 路由器默认密码

    3COM CellPlex 7000 Telnet tech tech 3COM CoreBuilder 7000 6000 3500 2500 Telnet debug synnet 3COM CoreBuilder 7000 6000
  • C语言编程示例之Hello World!

    C语言编程示例之Hello World include
  • kubernetes之证书更新

    证书更新 kubernetes的证书存放在 etc kubernetes pki目录下 使用kubeadm alpha certs check expiration 可查看证书有效时间 可以看出apiserver等证书有效期为一年 ca等证
  • 区块链ETH--remix简单使用介绍

    新版本下的remix使用介绍 1 Solidity与智能合约 起源于以太坊 Ethereum 设计的目的是能在以太坊虚拟机 EVM 上运行 Solidity 是一门面向合约的 为实现智能合约而创建的高级编程语言 Solidity文档 htt
  • 使用curl命令操作elasticsearch、使用http 查询ES

    使用curl命令操作elasticsearch And 使用http 查询ES 第一 cat系列 cat系列提供了一系列查询elasticsearch集群状态的接口 你可以通过执行 curl XGET localhost 9200 cat
  • Mac安装Java环境

    打开Mac终端 输入java version 检查当前Java环境 显示没有Java环境 下载安装jdk 默认配置即可 安装完成后 再次检查Java环境 已识别到所安装的Java环境 检查Java安装目录 有2个 且默认使用Plug Ins
  • Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

    原文地址 http blog csdn net congcong68 article details 41113239 互联网的发展 网站应用的规模不断扩大 常规的垂直应用架构已无法应对 分布式服务架构以及流动计算架构势在必行 Dubbo是
  • Java的多重循环和程序调试

    1 掌握Java二重循环 多重 嵌套 注意 外层循环控制行 内层循环控制列 每行打印的内容 外层循环执行一次 内层循环执行一遍 一般多重循环值的就是二重循环 2 使用跳转语句控制程序的流程 return结束程序 结束当前的方法 返回到方法的
  • 补偿策略-刷新创建失败的禅道工单

    背景 当平台创建工单时需要将数据同步到第三方 由于某些原因 如网络延迟没有收到响应 但平台工单需要正常创建 此时需要创建异步补偿策略 1 创建补偿任务 Slf4j public class QueryZenTaoRunable extend
  • 分布式事务的几种解决方案

    一 基础概念 1 什么是事务 事务可以看做是一次大的活动 它由不同的小活动组成 这些活动 要么全部成功 要么全部失败 2 本地事务 在计算机系统中 更多的是通过 关系型数据库来控制事务 这是利用数据库 本身的事务特性来实现的 因此叫 数据库
  • 【干货】Redis在Java开发中的基本使用和巧妙用法

    Redis是一款高性能的内存数据结构存储系统 能够支持多种数据结构类型 如字符串 哈希 列表 集合 有序集合等 也能够支持高级功能 如事务 发布 订阅 Lua脚本等 具有高可用性 高并发性和可扩展性的优点 在Java开发中 Redis可以作
  • Javascript编程语言-现代模式,“use strict“,变量,命名变量,常量,保留字

    现代模式 use strict 长久以来 JavaScript 不断向前发展且并未带来任何兼容性问题 新的特性被加入 旧的功能也没有改变 这么做有利于兼容旧代码 但缺点是 JavaScript 创造者的任何错误或不完善的决定也将永远被保留在
  • sqlmap的使用 (以封神台题目为例)

    一 sqlmap选项 目标 至少要选中一个参数 u URL url URL 目标为 URL 例如 http www site com vuln php id 1 g GOOGLEDORK 将谷歌dork的结果作为目标url 请求 这些选项可
  • Linux— 网络编程套接字

    目录 预备知识 认识端口号 理解源端口号和目的端口号 认识TCP协议 认识UDP协议 网络字节序 socket编程接口 socket 常见API sockaddr结构 sockaddr 结构 编辑 sockaddr in 结构 in add
  • C++ 多线程编程(一)- C++11中的线程类

    C 多线程编程 一 C 11中的线程类 1 C 11 多线程编程库 2 线程的创建 2 1 初始化构造函数 2 2 移动构造函数 3 线程的基本操作 3 1 join 阻塞 等待线程结束 3 2 detach 分离线程 1 C 11 多线程
  • 腾讯云时序数据库 CTSDB 开放公测

    欢迎大家前往云 社区 获取更多腾讯海量技术实践干货哦 作者 李晓慧 近日 腾讯云推出云上时序数据库CTSDB Cloud Time Series Database CTSDB 是一款分布式 可扩展 高可靠的时序数据库 适用于有海量时序数据的
  • 数组的常用方法总结

    获取指定数组的长度 arr length console log a b c length 3 通常情况下 如果想判断一个数组是否为空 可以通过数组的长度是否为零来判断 数组和字符串的相关转换 2 1 数组转换为字符串 console lo