最全es6数组方法

news/2024/4/20 18:11:23/文章来源:https://blog.csdn.net/m0_49515138/article/details/129138752

1.arr.push()从后面添加元素,返回值为添加完后的数组的长度

let arr = [1,2,3,4,5]
console.log(arr.push(5)) // 6
console.log(arr) // [1,2,3,4,5,5]

2.arr.pop()从后面删除元素,只能是一个,返回值是删除的元素

let arr = [1,2,3,4,5]
console.log(arr.pop())//5
console.log(arr)//[1,2,3,4]

3.arr.shift()从前面删除元素,只能删除一个,返回值是删除得元素

let arr =[1,2,3,4,5]
console.log(arr.shift())//1
console.log(arr)//[2,3,4,5]

4.arr.unshift()从前面添加元素,返回值是添加完后的数组的长度

let arr = [1,2,3,4,5]
console.log(arr.unshift(2))//6
console.log(arr)//[2,1,2,3,4,5]

5.arr.splice(i,n)删除从i(索引值)开始之后的那个元素。返回值是删除的元素
参数:i 索引值 n个数

let arr =[1,2,3,4,5]
console.log(arr.splice(2,2))//[3,4]
console.log(arr)//[1,2,5]

6.arr.concat()连接两个数组 返回值为连接后的新数组

let arr = [1,2,3,4,5]
console.log(arr.concat([1,2])) // [1,2,3,4,5,1,2]
console.log(arr) // [1,2,3,4,5]

7.str.split()将字符串转化为数组

let str= '123456'
console.log(str.split("))//["1", "2", "3", "4", "5", "6"]

8.arr.sort()将数组进行排序,反回值是排好的数组,默认是按照最左边的数字进行排序,不是按照数字大小排序的。

let arr = [2,10,6,1,4,22,3]
console.log(arr.sort()) // [1, 10, 2, 22, 3, 4, 6]
let arr1=arr.sort((a,b)=>a-b)
console.log(arr1)[1, 2, 3, 4, 6, 10, 22]
let arr2 = arr.sort((a,b)=>b-a)
console.log(arr2) // [22, 10, 6, 4, 3, 2, 1]

9.arr.reverse()将数组反转,返回值是反转后的数组

let arr=[1,2,3,4,5]
console.log(arr.reverse()) // [5,4,3,2,1]
console.log(arr) // [5,4,3,2,1]

10 arr.slice(start,end) 切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组

let arr = [1,2,3,4,5]
console.log(arr.slice(1,3)) // [2,3]
console.log(arr) // [1,2,3,4,5]

11 arr.forEach(callback) 遍历数组,无return

*注意:(伪数组转成真数组才能遍历 Array.prototype.slice.call(伪数组) )

callback的参数: value --当前索引的值

index --索引

array --原数组

let arr = [1,2,3,4,5]arr.forEach( (value,index,array)=>{console.log(`value:${value} index:${index} array:${array}`)})// value:1 index:0 array:1,2,3,4,5// value:2 index:1 array:1,2,3,4,5// value:3 index:2 array:1,2,3,4,5// value:4 index:3 array:1,2,3,4,5// value:5 index:4 array:1,2,3,4,5let arr = [1,2,3,4,5]arr.forEach( (value,index,array)=>{value = value * 2console.log(`value:${value} index:${index} array:${array}`)})console.log(arr)// value:2 index:0 array:1,2,3,4,5// value:4 index:1 array:1,2,3,4,5// value:6 index:2 array:1,2,3,4,5// value:8 index:3 array:1,2,3,4,5// value:10 index:4 array:1,2,3,4,5// [1, 2, 3, 4, 5]

12 arr.map(callback) 映射数组(遍历数组),有return 返回一个新数组
callback的参数: value --当前索引的值

index --索引

array --原数组

 
let arr = [1,2,3,4,5]arr.map( (value,index,array)=>{value = value * 2console.log(`value:${value} index:${index} array:${array}`)})console.log(arr)

ps: arr.forEach()和arr.map()的区别
1. arr.forEach()是和for循环一样,是代替for。arr.map()是修改数组其中的数据,并返回新的数据。
2. arr.forEach() 没有return arr.map() 有return

13 arr.filter(callback) 过滤数组,返回一个满足要求的数组
例如做搜索功能

let arr=[1,2,3,4,5]
let arr1=arr.filter((i,v)=>i<3)
console.log(arr1)//[1,2]

14 arr.every(callback) 依据判断条件,数组的元素是否全满足,若满足则返回ture

let arr = [1,2,3,4,5]let arr1 = arr.every( (i, v) => i < 3)console.log(arr1) // falselet arr2 = arr.every( (i, v) => i < 10)console.log(arr2) // true

15 arr.some() 依据判断条件,数组的元素是否有一个满足,若有一个满足则返回ture
*可以做元素在不在数组中的验证

let arr =[1,2,3,4,5]
let arr1=arr.some((i,v)=>i<3)
console.log(arr1) // true
let arr2=arr.some((i,v)=>i>10)
console.log(arr2) // false

16.arr.reduce(callback,initialValue)迭代数组的所有项,累加器,数组中的每个值(从左到右)合并,最终计算为一个值
参数: callback: previousValue 必选 --上一次调用回调返回的值,或者是提供的初始值(initialValue)

currentValue 必选 --数组中当前被处理的数组项

index 可选 --当前数组项在数组中的索引值

array 可选 --原数组

initialValue: 可选 --初始值

实行方法:回调函数第一次执行时,preValue 和 curValue 可以是一个值,如果 initialValue 在调用 reduce() 时被提供,那么第一个 preValue 等于 initialValue ,并且curValue 等于数组中的第一个值;如果initialValue 未被提供,那么preValue 等于数组中的第一个值.

let arr = [0,1,2,3,4]
let arr1=arr.reduce((preValue, curValue)=>
preValue + curValue
)
console.log(arr1) // 10

在这里插入图片描述

let arr2 = arr.reduce((preValue,curValue)=>preValue + curValue,5)console.log(arr2) // 15

在这里插入图片描述
17 arr.reduceRight(callback, initialValue) 与arr.reduce()功能一样,不同的是,reduceRight()从数组的末尾向前将数组中的数组项做累加。

实行方法:reduceRight()首次调用回调函数callbackfn时,prevValue 和 curValue 可以是两个值之一。如果调用 reduceRight() 时提供了 initialValue 参数,则 prevValue 等于 initialValue,curValue 等于数组中的最后一个值。如果没有提供 initialValue 参数,则 prevValue 等于数组最后一个值, curValue 等于数组中倒数第二个值。

let arr = [0,1,2,3,4]let arr1 = arr.reduceRight((preValue, curValue) =>preValue + curValue)console.log(arr1) // 10

在这里插入图片描述

let arr2 = arr.reduceRight((preValue,curValue)=>preValue + curValue,5)console.log(arr2) // 15

在这里插入图片描述
18.arr.indexOf()查找某个元素的索引,若有重复,则返回第一个查到的索引值,若不存在,则返回-1

let arr = [1,2,3,4,5,2]
let arr1=arr.indexOf(2)
console.log(arr1)// 1
let arr2 = arr.indexOf(9)
console.log(arr2)// -1

19 arr.lastIndexOf() 和arr.indexOf()的功能一样,不同的是从后往前查找

let arr = [1,2,3,4,5,2]let arr1 = arr.lastIndexOf(2)console.log(arr1) // 5let arr2 = arr.lastIndexOf(9)console.log(arr2) // -1

20.Array.from()将伪数组变成数组,就是只要有length的就可以转为数组。—es6

let str='12345'
console.log(Array.from(str))//["1", "2", "3", "4", "5"]
let obj = {0:'a',1:'b',length:2}
console.log(Array.from(obj))//["a","b"]

21.Array.of()将一组值转换为数组,类似声明数组 —es6

let str='11'
console.log(Array.of(str))//["11"]

等价于

console.log(new Array('11'))//['11']

ps:

但是new Array()有缺点,就是参数问题引起的重载

console.log(new Array(2)) //[empty × 2] 是个空数组console.log(Array.of(2)) // [2]

22.arr.copyWithin() 在当前数组内部,将制定位置的数组复制到其他位置,会覆盖原数组项,返回当前数组
 参数: target --必选 索引从该位置开始替换数组项

start --可选 索引从该位置开始读取数组项,默认为0.如果为负值,则从右往左读。

end --可选 索引到该位置停止读取的数组项,默认是Array.length,如果是负值,表示倒数

let arr = [1,2,3,4,5,6,7]let arr1 = arr.copyWithin(1)console.log(arr1) // [1, 1, 2, 3, 4, 5, 6]let arr2 = arr.copyWithin(1,2)console.log(arr2) // [1, 3, 4, 5, 6, 7, 7]let arr3 = arr.copyWithin(1,2,4)console.log(arr3) // [1, 3, 4, 4, 5, 6, 7]

23.arr.find()找到第一个符合条件的数组成员

let arr = [1,2,3,4,5,2,4]
let arr1=arr.find((value, index, array)=>value>2)
console.log(arr1)//3

24.arr.findIndex()找到第一个符合条件的数组成员的索引值


let arr = [1,2,3,4,5]
let arr1=arr.findIndex((value, index, array)=>value>3)
console.log(arr1)//3

25.arr.fill(target,start,end)使用给定的值,填充一个数组,ps:填充完后会改变原数组
 参数: target – 待填充的元素

start – 开始填充的位置-索引

end – 终止填充的位置-索引(不包括该位置)

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

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

相关文章

【Kubernetes 企业项目实战】08、简化 K8s 应用部署工具 Helm V3 入门到企业实战

目录 一、Helm 介绍 1.1 Helm 是什么 1.2 Helm 解决了什么痛点 1.3 Helm 相关组件及概念 1.4 Helm v3 版本变化 1.5 总结 二、安装 Helm 2.1 下载 Helm 2.2 安装 Helm 2.3 配置国内存放 chart 仓库的地址 三、Helm 基本使用 3.1 搜索和下载 Chart 3.2 部署 chart …

Tencent OS下逻辑卷(LVM)创建和扩容

测试环境是一个虚拟机&#xff0c;原配置1个虚拟盘。 创建4个虚拟盘&#xff0c;每盘2G并挂载在虚拟主机上&#xff0c;启动虚拟主机开始测试。 LVM英文是Logical Volume Manager&#xff0c;直接翻译为逻辑卷管理。 这种磁盘管理模式比较灵活&#xff0c;在磁盘空间不足的时…

WSO2通过设定Role来订阅对应的Api

WSO2通过设定Role来订阅对应的Api1. Add Role And User1.0 Add Role1.1 Add User 1.2 Add Mapping2. Upload Api2.1 Upload Three Apis2.2 Inspection3. AwakeningWSO2安装使用的全过程详解: https://blog.csdn.net/weixin_43916074/article/details/127987099. 1. Add Role An…

UnRaid虚拟机安装OpenWrt软路由

文章目录0、前言1、Openwrt虚拟机安装1.1、前提&#xff0c;需要先在UnRaid中开启虚拟机&#xff1a;1.2、下载OpenWrt虚拟机镜像并上传至UnRaid共享文件夹1.3、创建OpenWrt虚拟机2、开启并设置OpenWrt虚拟机2.1、修改OpenWrt管理ip2.2、OpenWrt的上网设置0、前言 最近折腾了很…

产品未出 百度朋友圈“开演”

ChatGPT这股AI龙卷风刮到国内时&#xff0c;人们齐刷刷望向百度&#xff0c;这家在国内对AI投入最高的公司最终出手了&#xff0c;大模型新项目文心一言&#xff08;ERNIE Bot&#xff09;将在3月正式亮相&#xff0c;对标微软投资的ChatGPT。 文心一言产品未出&#xff0c;百…

江南爱窗帘十大品牌 | 窗帘的定做有哪些技巧和注意事项?

人们的家居空间中总是会有各式各样的窗帘存在的&#xff0c;为了使得窗帘的品质更加的过关&#xff0c;人们在选购时&#xff0c;总是会希望可以购买到高品质的。一般情况下&#xff0c;会采用定制这种方法去进行制作。那么&#xff0c;窗帘的定做有哪些注意事项?窗帘定制技巧…

公司技术团队为什么选择使用 YApi 作为 Api 管理平台?

在 2021 年 12 月份的时候我就推荐过一款软件程序员软件推荐&#xff1a;Apifox&#xff0c;当时体验了一下里面的功能确实很实用&#xff0c;但是当时公司有一套自己的 API 管理方案&#xff0c;所有 Apifox 暂时就没在内部使用。 直到最近要使用其他的 API 管理方案的时候才…

el-form表单初始化赋值表单dataForm,,校验有问题,校验必填的也校验成功了

大家好啊,今天写表单发现我直接赋值对象 导致初始化校验必填校验成功以及validator校验有误的问题我的其企业名称 在初始化的时候 竟然都校验了 并且看起来像校验成功我在点击下一步的时候validator的时候&#xff0c;竟然也是校验成功&#xff0c;也不提示必填的错误最后检查我…

Java:什么是异常?什么是异常处理?

Java中的异常处理不是一个容易的话题。初学者很难理解&#xff0c;即使是经验丰富的开发人员也可以花几个小时讨论应该如何抛出或处理哪些Java异常。这就是为什么大多数开发团队都有自己的一套关于如何使用它们的规则。如果你是一个团队的新手&#xff0c;你可能会惊讶于这些规…

Python-第十天 Python数据可视化

Python-第十天 Python数据可视化一、折线图可视化1.效果一&#xff1a;2020年印美日新冠累计确诊人数2. JSON格式2.1什么是JSON2.2 json格式数据转化3. pyecharts模块介绍及安装4. pyecharts快速入门4.1 折线图快速入门案例5.数据处理5.1 原始数据5.2 使用在线工具解析JSON6.绘…

基于微信公众号(服务号)实现扫码自动登录系统功能

微信提供了两种方法都可以实现扫描登录。 一种是基于微信公众平台的扫码登录&#xff0c;另一种是基于微信开放平台的扫码登录。 两者的区别: 微信开放平台需要企业认证才能注册&#xff08;认证费用300元&#xff0c;只需要认证1次&#xff0c;后续不再需要进行缴费年审&#…

21个有用的python工具

Python是最流行的编程语言之一。 它简单、强大&#xff0c;并且由一个致力于开源项目的社区驱动。Python的大量使用是它如此流行的原因; 您可以免费构建软件、开发Web服务、执行数据分析和可视化以及训练机器学习模型。 Python开发工具 开发工具帮助我们构建快速可靠的Python…

为什么阳康后,感觉自己变傻了?

不少人在阳康后出现脑力下降的情况&#xff0c;好像脑子里被雾笼罩。脑雾并不是新名词&#xff0c;已经存在了十几年。以前慢性疲劳综合征患者和脑震荡患者会用它来形容自己的症状。脑雾其实是认知障碍&#xff0c;它可由多种原因引起。比如过度劳累、长期酗酒、缺乏睡眠、久坐…

进程内存机制及API及详解

一、进程概念 ​ 一个程序文件&#xff08;program&#xff09;&#xff0c;只是一堆待执行的代码和部分待处理的数据&#xff0c;他们只有被加载到内存中&#xff0c;然后让 CPU 逐条执行其代码&#xff0c;根据代码做出相应的动作&#xff0c;才形成一个真正“活的”、动态的…

【C++】thread|mutex|atomic|condition_variable

本篇博客&#xff0c;让我们来认识一下C中的线程操作 所用编译器&#xff1a;vs2019 阅读本文前&#xff0c;建议先了解线程的概念 &#x1f449; 线程概念 1.基本介绍 在不同的操作系统&#xff0c;windows、linux、mac上&#xff0c;都会对多线程操作提供自己的系统调用接口…

linux集群技术(二)--keepalived(高可用集群)(一)

高可用集群简介keepalived简介 1.高可用集群简介 1.1什么是高可用集群 高可用集群&#xff08;High Availability Cluster&#xff0c;简称HA Cluster&#xff09;&#xff0c;是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务&am…

智慧公厕系统为管理方提供更丰富的管理手段

很多时候&#xff0c;当人们外出游玩、在写字楼办公、商场购物、乘坐地铁火车出行时&#xff0c;都会看到公厕前面会有排队的现象&#xff0c;特别是对于人口流动大&#xff0c;公厕设施少的公共区域&#xff0c;队伍更是极其的长。智慧公厕可以解决传统公厕的脏乱差、异味和管…

python实现快速排序算法

文章目录1. 快速排序2. 步骤3. 详细代码4. 性能5. 相关链接1. 快速排序 快速排序&#xff08;英语&#xff1a;Quicksort&#xff09;&#xff0c;又称划分交换排序&#xff08;partition-exchange sort&#xff09;&#xff0c;通过一趟排序将要排序的数据分割成独立的两部分…

小公司“混”的3年,我认真做了5件事,真的受益终生

小公司“混”的3年&#xff0c;我认真做了5件事&#xff0c;真的受益终生 目录&#xff1a;导读 功能测试很重要但不值钱 自动化测试在小公司没市场&#xff0c;但是你得会 给自己的一些忠告 第一件事&#xff1a;分清阶段&#xff0c;制定计划 第二件事&#xff1a;梳理…

HTTP安全与HTTPS协议

目录 Http协议的安全问题 常见的加密方式 防止窃听 单向散列函数 单向散列值的特点 加密与解密 对称加密与非对称加密 对称加密的密钥配送问题 密钥配送问题的解决 非对称加密 前言&#xff1a; 公钥与私钥 非对称加密过程 混合密码系统 前言&#xff1a; 混合…