JS中数组的相关方法介绍

  1. push()

    • 将一个或多个元素添加到数组的末尾,并返回新的长度。
      let arr = [1, 2, 3];  
      arr.push(4);  // arr 现在是 [1, 2, 3, 4]

      pop()

    • 删除并返回数组的最后一个元素
      let arr = [1, 2, 3, 4];  
      let last = arr.pop();  // last 现在是 4,arr 现在是 [1, 2, 3]

    • shift()

      • 删除并返回数组的第一个元素。
        let arr = [1, 2, 3, 4];  
        let first = arr.shift();  // first 现在是 1,arr 现在是 [2, 3, 4]

        unshift()

      • 将一个或多个元素添加到数组的开头,并返回新的长度
let arr = [2, 3, 4];  
arr.unshift(1);  // arr 现在是 [1, 2, 3, 4]

slice()

  • 提取数组的一部分并在新的数组中返回。提取的范围由开始和结束索引确定。不包含结束索引

 

let arr = [0, 1, 2, 3, 4];  
let sliced = arr.slice(1, 3);  // sliced 现在是 [1, 2]

 

splice()

  • 通过删除或替换现有元素或者添加新元素来修改数组,然后返回被修改的元素
let arr = [0, 1, 2, 3];  
arr.splice(1, 2, 'a', 'b');  // arr现在是 [0, 'a', 'b', 3]

 

  1. sort()

    • 对数组元素进行排序。默认排序是字母顺序或数字顺序。按照字母顺序排列字符串时,会先转换为 Unicode 码点。如果提供了比较函数,则按照该函数的结果进行排序。比较函数应该接收两个参数,如果第一个参数应该位于第二个参数之前,则返回负数;如果两个参数相等,则返回零;如果第一个参数应该位于第二个参数之后,则返回正数。
let arr = [3, 1, 4];  
arr.sort();  // arr现在是 [1, 3, 4]

reverse()

  • 将数组的元素颠倒顺序。请注意,原始数组会被修改
    let arr = [0, 1, 2];  
    arr.reverse();  // arr现在是 [2, 1, 0]

  • concat()

  • 将两个或更多数组连接在一起,并返回结果。不会更改现有数组,而是返回新数组。这是连接两个或更多数组的一种简便方法。它不会修改现有的数组,而是返回一个新数组。如果参数中的某些不是数组,它们会被转换为数组。如果任何参数为null或undefined,则它们将被视为空数组。任何非数组参数都不会改变原数组。这也是一种连接两个或更多数组合并成一个新数组的简便方法。例如:let new_array = old_array.concat(value1[, value2[, ...[, valueN]]]);。它将把所有可迭代的参数合并到一起,并返回结果数组。所以如果要合并两个字符串(字符串也可以使用该方法)也是可以的,代码如下:var str1 = 'Hello'; 和 var str2 = 'World'; 通过 str1.concat(str2); 后会得到结果字符串 'HelloWorld'。 注意,该方法并不会把合并的结果存储在新的变量里,而是改变了原来的旧变量。如需使用结果值,需要将结果赋值给新的变量:var result = str1.concat(str2); 这样 result 的值就是 'HelloWorld'

join()

  • 将数组中所有元素连接成一个字符串。需要传入一个参数作为连接符,如果不传则默认为逗号
let arr = ['a', 'b', 'c'];  
let str = arr.join();  // str现在是 "a,b,c"

 

  1. indexOf()

    • 返回指定元素在数组中的第一个索引,如果不存在则返回-1。
let arr = ['a', 'b', 'c'];  
let index = arr.indexOf('b');  // index现在是 1

 

  1. lastIndexOf()

    • 返回指定元素在数组中最后一个索引,如果不存在则返回-1。

 

let arr = ['a', 'b', 'c', 'b'];  
let index = arr.lastIndexOf('b');  // index现在是 3

 

forEach()

  • 对数组中的每个元素执行一次给定的函数
    let arr = [1, 2, 3];  
    arr.forEach(function(value, index) {  console.log(value);  // 依次输出 1, 2, 3  
    });

    map()

  • 创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后的结果
let arr = [1, 2, 3];  
let newArr = arr.map(function(value) {  return value * 2;  // 返回新数组 [2, 4, 6]  
});

 

filter()

  • 创建一个新数组,包含通过所提供函数实现的测试的所有元素
let arr = [1, 2, 3, 4];  
let newArr = arr.filter(function(value) {  return value > 2;  // 返回新数组 [3, 4]  
});

 

reduce()

  • 对数组中的每个元素应用一个函数,将其减少为单个值
let arr = [1, 2, 3, 4];  
let sum = arr.reduce(function(a, b) {  return a + b;  // 返回 10  
}, 0);

 

  1. find()

    • 返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
let arr = [1, 2, 3, 4];  
let value = arr.find(function(value) {  return value > 2;  // 返回 3  
});

 

findIndex()

  • 返回数组中满足提供的测试函数的第一个元素的索引。否则返回 -1
let arr = [1, 2, 3, 4];  
let index = arr.findIndex(function(value) {  return value > 2;  // 返回 2  
});

 

some()

  • 测试数组中是否至少有一个元素通过由提供的函数实现的测试
let arr = [1, 2, 3, 4];  
let result = arr.some(function(value) {  return value > 3;  // 返回 true  
});

  1. every()

    • 测试数组的所有元素是否都通过了由提供的函数实现的测试。
let arr = [1, 2, 3, 4];  
let allPositive = arr.every(function(value) {  return value > 0;  // 返回 true  
});
  1. includes()

    • 判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。
      let arr = [1, 2, 3, 4];  
      let included = arr.includes(2);  // 返回 true

      flat() 或 flatten() (注意:flatten() 并不是标准的方法,但经常被误用或混淆;应使用 flat())

    • 创建一个新数组,所有子数组的元素都递归连接到一个新数组中。
let arr = [1, 2, [3, 4, [5, 6]]];  
let flattened = arr.flat(2);  // 返回 [1, 2, 3, 4, 5, 6]

  1. flatMap()

    • 先对每个元素执行一个映射函数,然后将结果展平到一个新数组中。
let arr = [1, 2, 3];  
let newArr = arr.flatMap(function(value) {  return [value, value * 2];  // 返回 [1, 2, 2, 4, 3, 6]  
});

  1. entries()
    • 返回一个新的数组迭代器对象,它包含数组中每个索引的键/值对。
let arr = ['a', 'b', 'c'];  
let iterator = arr.entries();  
for (let entry of iterator) {  console.log(entry);  // 输出 [0, 'a'], [1, 'b'], [2, 'c']  
}

  1. keys()
    • 返回一个新的数组迭代器对象,它包含数组中每个索引的键。
let arr = ['a', 'b', 'c'];  
let iterator = arr.keys();  
for (let key of iterator) {  console.log(key);  // 输出 0, 1, 2  
}

  1. values()
    • 返回一个新的数组迭代器对象,它包含数组的每个值。
let arr = ['a', 'b', 'c'];  
let iterator = arr.values();  
for (let value of iterator) {  console.log(value);  // 输出 'a', 'b', 'c'  
}

  1. copyWithin()
    • 在数组内部,将一系列元素复制到另一个位置,覆盖原有元素,但不会改变数组大小。
let arr = [1, 2, 3, 4, 5];  
arr.copyWithin(0, 3, 4);  // 返回 [4, 2, 3, 4, 5],从索引3复制元素到索引0

  1. fill()
    • 用一个固定值填充数组的一部分,从起始索引到结束索引。
let arr = [1, 2, 3, 4, 5];  
arr.fill(0, 1, 3);  // 返回 [1, 0, 0, 4, 5],从索引1到索引3(不包括)填充0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第23章 集 ,势(阿列夫0),良序集(序数),有理数无理数

继续讲解集,接下来讲集的运算,集合的交和并,上开口是交集下开口是并集,这里有一些类似于加法和乘法的样子,其实也没有错,乘法符号也只是一个符号,真正有用的是表示的交换和结合率 集这个概念&a…

HCIA—— 16每日一讲:HTTP和HTTPS、无状态和cookie、持久连接和管线化、(初稿丢了,这是新稿,请宽恕我)

学习目标: HTTP和HTTPS、无状态和cookie、持久连接和管线化、HTTP的报文、URI和URL(初稿丢了,这是新稿,请宽恕我😶‍🌫️) 学习内容: HTTP无状态和cookieHTTPS持久连接和管线化 目…

深入解析iOS中的layoutSubviews方法

深入解析iOS中的layoutSubviews方法 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在今天的文章中,我们将深入研究iOS开发中一个不可或缺的方法——lay…

vue2 pdfjs-2.8.335-dist pdf文件在线预览功能

1、首先先将 pdfjs-2.8.335-dist 文件夹从网上搜索下载,复制到public文件夹下. 2、在components下新建组件PdfViewer.vue文件 3、在el-upload 中调用 pdf-viewer 组件 4、在el-upload 中的 on-preview方法中加上对应的src路径 internalPreview(file) { //判断需要…

编译原理1.3习题 程序设计语言的发展历程

图源:文心一言 编译原理习题整理~🥝🥝 作为初学者的我,这些习题主要用于自我巩固。由于是自学,答案难免有误,非常欢迎各位小伙伴指正与讨论!👏💡 第1版:自…

go语言GMP模式介绍以及协程案例展示

一. MPG模式 Go语言的调度模型被称为GMP,这是一个高效且复杂的调度系统,用于在可用的物理线程上调度goroutines(Go的轻量级线程)。GMP模型由三个主要组件构成:Goroutine、M(机器)和P&#xff0…

IPv6隧道--GRE隧道

GRE隧道 通用路由封装协议GRE(Generic Routing Encapsulation)可以对某些网络层协议(如IPX、ATM、IPv6、AppleTalk等)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IPv4)中传输。 GRE提供了将一种协议的报文封装在另一种协议报文中的机制,是一…

Linux一条命令换阿里源

要在Linux系统中切换到阿里源,可以使用以下命令。请注意,不同的Linux发行版可能有不同的包管理工具,因此命令可能会有所不同。 对于使用apt的Debian/Ubuntu系统: sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup …

个人网站制作 Part 7 添加用户认证和数据库集成 | Web开发项目

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 用户认证与数据库集成🔨添加用户认证🔧步骤 1: 使用Passport.js 🔨集成数据库🔧步骤 2: 使用MongoDB和Mongoose &#x1f…

Grafana(二)Grafana 两种数据源图表展示(json-api与数据库)

一. 背景介绍 在先前的博客文章中,我们搭建了Grafana ,它是一个开源的度量分析和可视化工具,可以通过将采集的数据分析、查询,然后进行可视化的展示,接下来我们重点介绍如何使用它来进行数据渲染图表展示 Docker安装G…

AIOps探索 | 基于大模型构建高效的运维知识及智能问答平台(2)

前面分享了平台对运维效率提升的重要性和挑战以及基于大模型的平台建设解决方案,新来的朋友点这里,一键回看精彩原文。 基于大模型构建高效的运维知识及智能问答平台(1)https://mp.csdn.net/mp_blog/creation/editor/135223109 …

【REMB 】翻译:草案remb-03

REMB REMB消息 以及 绝对时间戳选项 在带宽估计中的使用 :an absolute-value timestamp option for use in bandwidth estimatoin. 接收方带宽估计的RTCP消息 REMB 这位大神翻译的更好。 RTCP message for Receiver Estimated Maximum Bitrate draft-alvestrand-rmcat-remb-03…

iOS开发进阶(六):Xcode14 使用信号量造成线程优先级反转问题修复

文章目录 一、前言二、关于线程优先级反转三、优先级反转会造成什么后果四、怎么避免线程优先级反转五、使用信号量可能会造成线程优先级反转,且无法避免六、延伸阅读:iOS | Xcode中快速打开终端6.1 .sh绑定6.2 执行 pod install 脚本 七、延伸阅读&…

Android Activity的启动流程(Android-10)

前言 在Android开发中,我们经常会用到startActivity(Intent)方法,但是你知道startActivity(Intent)后Activity的启动流程吗?今天就专门讲一下最基础的startActivity(Intent)看一下Activity的启动流程,同时由于Launcher的启动后续…

JDBC是什么?你是如何连接数据库的?

JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。它由一组用Java语言编写的类和接口组成,使得Java程序员可以使用统一的API来连接不同的数…

光伏发电系统的MPPT控制策略研究

摘 要 面对全球日趋严重的能源危机问题,可再生能源的开发和利用得到了人们的高度重 视。其中辐射到地球太阳能资源是十分富饶的,绿色清洁的太阳能不会危害我们的生存 环境,因而受到了人们的广泛利用。光伏发电作为当前利用太阳能的主要方式…

position有哪些值?分别是根据什么定位的?

CSS的position属性有五个值,它们分别是:static、relative、absolute、fixed和sticky。 static:这是默认值,元素按照正常的文档流进行定位。 relative:元素按照正常的文档流进行定位,然后相对于其原始位置…

STM32——DMA知识点及实战总结

1.DMA概念介绍 DMA,全称Direct Memory Access,即直接存储器访问。 DMA传输 将数据从一个地址空间复制到另一个地址空间。 注意:DMA传输无需CPU直接控制传输 2.DMA框图 3.DMA处理过程 外设的 8 个请求独立连接到每个通道,由 DMA_…

YOLOv5改进 | 融合改进篇 | 轻量化CCFM + SENetv2进行融合改进涨点 (全网独家首发)

一、本文介绍 本文给大家带来的改进机制是轻量化的Neck结构CCFM配合SENetv2改进的网络结构进行融合改进,其中CCFM为我本人根据RT-DETR模型一比一总结出来的,文中配其手撕结构图,其中SENetV2为网络结构重构化模块,通过其改进主干从而提取更有效的特征,这两个模块搭配在一起…

Java实现海南旅游景点推荐系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…