文章目录
js高级中数组的常用方法
1. push()方法
作用:将指定的元素添加到数组的末尾,并返回新的数组长度
参数:elementN 指定的的元素
返回值:数组的新length
案例:
2. pop()方法
作用:删除数组最后一个元素,并返回该元素的值,会更改数组的长度
返回值:被删除的元素(若为空则返回undefined)
案例:
3. shiift()方法
作用:从数组中删除第一个元素,并返回该元素的值,可以更改数组的长度
返回值:被删除的元素(若为空则返回undefined)
案例:
4. unshift()方法
作用:将指定元素添加到数组的起始位置,并返回数组的新长度
参数:指定的元素
返回值:数组的新length
案例:
5. slice(start,end)方法
作用:从原数组中切出新数组
参数:包头不包尾
start:开始索引
- 如果索引是负数,则从数组末尾开始计算,即 start < 0 使用 start + array.length
- 如果start大于数组的长度,则不提取任何元素
end:结束索引
- 如果索引是负数,则从数组末尾开始计算,即 end < 0 使用 end + array.length
- 如果end > start 则不提取任何元素
若只有一个参数,则直接切去对应索引的元素数组
返回值:切出的新数组
案例:
6. splice()方法
作用:向数组添加或删除元素
参数:如splice(2,0,‘Lemon’,‘potato’)
第一个参数:添加的新元素的索引位置(拼接)
第二个参数:应删除多少元素
- 如果没有要添加的元素,即剩余参数为空,则第一个参数为要删除元素的索引
- 如果有要添加的元素,且也有要删除的元素,则先执行替换的操作
剩余参数:添加的新元素
返回值:一个包含了删除元素的数组
- 如果只移除一个元素,则返回一个元素的数组
- 如果没有删除任何元素,则返回一个空数组
案例:
7. concat()方法
作用:用于合并两个或多个数组。
参数:数组和或值,将被合并到一个新的数组中,若为空则返回调用此方法的数组的一个浅拷贝。
返回值:新的Array实例
8. sort()方法
作用:就地对数组的元素进行排序,并返回对相同数组的引用。默认默认排序是将元素转换为字符串,然后按照它们的 UTF-16 码元值升序排序。
参数:compareFn 定义排序顺序的函数。返回值应该是一个数字,其正负性表示两个元素的相对顺序。该函数使用以下参数调用:
a:第一个用于比较元素。
b:第二个用于比较的元素。
如果省略该函数,数组元素会被转换为字符串,然后根据每个字符的Unicode码位值进行排序。
返回值:经过排序的原始数组的引用。数组是就地排序的,不会进行复制
案例:
9. join()方法
作用:将一个数组的所有元素连接成一个字符串并返回这个字符串,用逗号或指定的分隔符字符串分隔。如果数组只有一个元素,那么将返回该元素而不使用分隔符。
参数:join(separator)
separator指定一个字符串来分隔数组的每个元素。如果需要,将分隔符转换为字符串。如果省略,数组元素用逗号(,
)分隔。如果 separator
是空字符串(""
),则所有元素之间都没有任何字符。
返回值:
一个所有数组元素连接的字符串。如果 arr.length
为 0
,则返回空字符串。
案例:
10. find()方法
作用:返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
。
- 如果需要在数组中找到对应元素的索引,请使用
findIndex()
。 - 如果需要查找某个值的索引,请使用
Array.prototype.indexOf()
。(它类似于findIndex()
,但只是检查每个元素是否与值相等,而不是使用测试函数。) - 如果需要查找数组中是否存在某个值,请使用
Array.prototype.includes()
。同样,它检查每个元素是否与值相等,而不是使用测试函数。 - 如果需要查找是否有元素满足所提供的测试函数,请使用
Array.prototype.some()
。
参数:find(callbackFn, thisArg)
callbackFn 为数组中的每个元素执行的函数。它应该返回一个真值来表示已经找到了匹配的元素。
thisArg 执行 callbackFn
时用作 this
的值。
返回值:数组中第一个满足所提供测试函数的元素的值,否则返回 undefined
。
案例:
11. every()方法
作用:测试一个数组内的所有元素是否都能通过指定函数的测试。它返回一个布尔值。
参数:
every(callbackFn, thisArg)
callbackFn 为数组中的每个元素执行的函数。它应该返回一个真值以指示元素通过测试,否则返回一个假值
thisArg 执行 callbackFn
时用作 this
的值。
返回值:布尔值
案例:
12. some()方法
作用:测试数组中是否至少有一个元素通过了由提供的函数实现的测试。如果在数组中找到一个元素使得提供的函数返回 true,则返回 true;否则返回 false。它不会修改数组。
参数:every(callbackFn, thisArg)
callbackFn 为数组中的每个元素执行的函数。它应该返回一个真值以指示元素通过测试,否则返回一个假值
thisArg 执行 callbackFn
时用作 this
的值。
返回值:布尔值
案例:
13. includes()方法
作用:用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true
,否则返回 false
。
参数:includes(searchElement, fromIndex)
searchElement 需要查找的值
fromIndex 开始搜索的索引(从零开始)
返回值:一个布尔值,如果在数组中(或者在 fromIndex
所指示的数组部分中,如果指定 fromIndex
的话)找到 searchElement
值,则该值为 true
。
案例:
14. reverse()方法
作用:就地反转数组中的元素,并返回同一数组的引用。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。换句话说,数组中的元素顺序将被翻转,变为与之前相反的方向。
返回值:原始数组反转后的引用。注意,数组是就地反转的,并且没有复制。
案例:
15. reduce()方法
作用:经常用于求和
基本语法:
arr.reduce(function() {},初始值)
arr.reduce(function(上一次的值,当前值) {},初始值)
返回值:累计处理的结果
案例:
16. map()方法
作用:迭代数组,经常和join()方法一起使用
参数:map(callbackFn)
callbackFn 回调函数 ,其中参数有:
element:数组元素
index: 索引号
返回值:返回新数组,返回的是处理之后的数组元素,想要使用返回的新数组
案例:
17. forEach()方法
作用:对数组的每个元素执行一次给定的函数,经常用于查找遍历数组元素
参数:
forEach(callbackFn, thisArg)
callbackFn 为数组中每个元素执行的函数。并会丢弃它的返回值
thisArg 执行 callbackFn
时用作 this
的值。
返回值:undefined
案例:
18. filter()方法
作用:过滤数组,返回筛选满足条件的数组元素
参数:
map(callbackFn)
callbackFn 回调函数 ,其中参数有:
element:数组元素
index: 索引号
19. Array.from()静态方法
作用:伪数组转换为真数组
参数:Array.from(Element)
Element 要转换的对象
返回值:伪数组对应的真数组
案例: