Javascript数组方法总结

增加元素

push( ) 在数组尾部(所有元素的最后面)添加一个或多个元素
unshift( ) 在数组头部(所有元素的最前面)添加一个或多个元素
=>返回值为新增元素后数组的长度

删除元素

pop( ) 在数组的尾部删除一个元素(每次调用删除一个)
shift( ) 在数组的头部删除一个元素(每次调用删除一个)
=>返回值为被删除的元素
splice() 增删改
1.splice(index,n)
任意位置删除 从下标为index的位置开始 删除n个元素
2.splice(index,0,arg1,arg2…argN)
任意位置新增 从下标为index的位置开始 删除0个元素,再新增一个或多个元素(从第三参数开始 都属于新增的元素)
3.splice(index,n,arg1,arg2…argN)
任意位置修改 从下标为index的位置开始 删除n个元素,再新增一个或多个元素(从第三参数开始 都属于修改的元素)
=>返回值为被删除的元素形成的数组

反转数组

reverse() :方法用于颠倒数组中元素的顺序。
=>返回值: 颠倒后的数组

裁切数组

slice(start,end) :通过指定起始下标和终止下标 裁切数组中的某一段元素
start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
=>返回值:返回一个包含从 start 到 end (不包括该元素)的 新数组
是否影响原数组 不影响
拓展用法
1. 分页功能 [0,60) [60,120)
2. 不传参 => 得到一个与 原数组元素相同的新数组(数组的深复制) 可以帮助我们在不影响原数组的情况下 操作数组(先复制一份 在操作)

数组排序

sort( ) : 数组排序(官方提供的数组排序的方法)
1.字符排序 (按照ASCII码表的大小排序)
2.纯数字排序
函数当成参数传入到sort()方法中 => 规定如何排序
函数有两个形式参数 a,b 分别表示每次比较的前后两个元素 (用于指定排序的方式)
=>返回值: 排序后的原数组

在这里插入图片描述

连接数组

concat( ) : 可以将多个数组和元素拼接形成一个新数组,
如果拼接的是一个数组,则将数组展开(遍历数组中的每个元素) 放到新数组中。如果拼接的不是一个数组,则直接放到新数组中
=>返回值: 拼接形成的新数组
是否影响原数组 不影响
拓展用法:
不传参 => 得到一个于原数组 元素相同的新数组(数组的复制)

查看元素下标

indexOf( ) : 返回某个元素在数组中第一次出现的位置(下标)
=>返回值为:如果该元素存在则返回对应的下标, 不存在则返回 -1
是否影响原数组:不影响

判断元素是否存在

includes( ) (ES6新增)
用于判断数组中是否存在某个元素 可以判断是否存在NaN
=>返回值 存在=> true 不存在=>false
是否影响原数组:不影响

数组元素的拼接

join(char)
用特定的字符将数组拼接形成字符串 如果不传参 char认","
=>返回值: 拼接形成的字符串
是否影响原数组:不影响

数组循环的方法

forEach( )
遍历数组,每次循环时执行传入的回调函数(执行的操作)
回调函数接收三个参数 item(循环当前的元素),index(当前下标),array(原数组)
=>返回值:undefined
map( )
数组的映射(迭代 => 根据原数组 生成新数组)
遍历数组,每次循环时执行传入的回调函数(执行的操作), 并接收回调函数的返回值,放到新数组中 最终返回
=>返回值: 回调函数中的返回值 形成的新数组
filter()
数组的过滤/筛选 (把满足条件的元素 放到新数组中).
遍历数组,每次循环时执行传入的回调函数(执行的操作), 回调函数返回(return)一个条件表达式,把满足条件的元素 放到新数组中
=>返回值: 满足条件的元素 形成的数组
some()
判断数组中是否存在满足条件的元素.
遍历数组,每次循环时执行传入的回调函数(执行的操作), 回调函数返回(return)一个条件表达式,只要有一个元素满足则返回true , 都不满足返回false
=>返回值: 布尔值
every()
判断数组中所有的元素是否都满足满足某个条件.
遍历数组,每次循环时执行传入的回调函数(执行的操作), 回调函数返回(return)一个条件表达式,全都满足则返回true , 有一个不满足则返回false
=>返回值: 布尔值

数组的归并(正反)

arr.reduce(function(prev,item,index,array){},initValue)

  • 遍历数组,每次循环时执行传入的回调函数,并将回调函数的结果保留作为下一次的prev传入
  • initValue 用于指定prev的初始值
  • 如果有initValue,initValue作为Prev的初始值 数组从下标0开始遍历
  • 如果没有initValue,数组中的第一个元素UI作为prev的初始值 数组从下标1开始遍历

数组的浅拷贝和深拷贝

浅拷贝:
引用类型 直接赋值的操作叫做浅复制 => 两个变量引用同一片内存空间(只要有一个改动,另一个会随之改动)

var arr = [1,2,3];
var brr = arr;
console.log(arr === brr);

深拷贝:
在不影响原数组的情况下 得到一个与原数组元素相同的新数组

  1. 新建数组 遍历原数组 将原数组中的每一个元素 放到新数组中 (针对值类型的数组)
  2. 借助数组的拓展方法 slice concat (针对值类型的数组)
  3. 在这里插入图片描述


    在这里插入图片描述

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...