Array对象方法
在实际的 JavaScript 代码编写中,经常会遇到处理数组的需求,因此在这里罗列一下原生的数组操作方法,常用的方法在前。
头尾增删
添加
- push() 向数组的末尾添加一个或更多元素,并返回新的长度。
- unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
1 | var arr = [1, 2, 4, 5] |
删除
- pop() 删除并返回数组的最后一个元素。
- shift() 删除并返回数组的第一个元素。
1 | var arr = [1, 2, 4, 5] |
局部增删
- slice() 选取数组的的一部分,并返回一个新数组。不改变原数组。
- splice() 从数组中删除、插入、替换元素,并返回删除的数组。改变原数组。
slice()
语法 array.slice(start, end)
返回从 start 到 end (** 不包括该元素 **)的数组。
参数 | 描述 |
---|---|
start | 可选。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 |
end | 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。 |
splice()
这是一个很强大的方法, slice() 能实现的功能它也可以实现,最大的区别是它还可以替换元素,另外这个方法是改变原数组的。
语法 array.splice(index,howmany,item1,.....,itemX)
参数 | 描述 |
---|---|
index | 必需。规定从何处开始操作,必须是数字。 |
howmany | 必需。规定应该删除多少元素,必须是数字,可以是 “0”。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。 |
item1, …, itemX | 可选。要添加到数组的新元素。 |
排序数组
- reverse() 反转数组的元素顺序。改变原数组。
- sort() 对数组的元素进行排序。改变原数组。
这两个方法在本博客JS重排方法一文中有更详细的解释。
遍历数组
- every() 检测数值元素的每个元素是否都符合条件。
- some() 检测数组元素中是否有元素符合指定条件。
- filter() 检测数值元素,并返回符合条件所有元素的数组。
- map() 通过指定函数处理数组的每个元素,并返回处理后的数组。
这四个方法在本博客JS数组迭代一文中有更详细的解释。
连接数组
concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法 array1.concat(array2,array3,...,arrayX)
分隔数组
join() 方法用于把数组中的所有元素转换一个字符串。元素是通过指定的分隔符(默认为逗号)进行分隔的。不改变原数组。
语法 array.join(separator)
检索数组
- indexOf() 从头到尾搜索,并返回第一个指定项的索引。
- lastIndexOf() 从尾到头搜索,并返回第一个指定项的索引。
1 | array.indexOf(item,start) |
start 是可选参数,规定在数组中开始检索的位置。
类型转换
- toString() 把数组转换为字符串,并返回结果。不改变原数组。
- valueOf() 返回数组对象的原始值。不改变原数组。
array.toString()
等价于 array.join()
1 | var arr = [1, 2, 4, 5] |