JS数组处理
JavaScript数组处理
Array, concat, join, length, reverse, slice, sort
Array对象
提供对创建任何数据类型的数组的支持。
1 | arrayObj = new Array() |
concat方法(Array)
返回一个新数组,这个新数组是由两个或更多数组组合而成。
array1.concat([item1[, item2[, . . . [, itemN]]]])
concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。
要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。如果某一项为数组,那么添加其内容到 array1 的末尾。如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。
以下为从源数组复制元素到结果数组:
- 对于从正被连接到新数组的数组中复制的对象参数,复制后仍然指向相同的对象。不论新数组和源数组中哪一个有改变,都将引起另一个的改变。
- 对于连接到新数组的数值或字符串,只复制其值。一个数组中值有改变并不影响另一个数组中的值。
join方法
返回字符串值,其中包括连接道一起的数组的所有元素,元素由指定分隔符分开。
arrayObj.join(separator)
如果数组中有元素没有定义或者为 null,将其作为空字符串处理。
1 | function JoinDemo(){ |
reverse方法
返回一个元素顺序被反转的Array对象。
arrayObj.reverse( )
reverse 方法将一个 Array 对象中的元素位置进行反转。在执行过程中,这个方法并不会创建一个新的 Array 对象。
如果数组是不连续的,reverse 方法将在数组中创建元素以便填充数组中的间隔。这样所创建的全部元素的值都是 undefined。
1 | function ReverseDemo(){ |
slice方法(Array)
返回一个数组的一段。
arrayObj.slice(start, [end])
slice 方法返回一个 Array 对象,其中包含了 arrayObj 的指定部分。
slice 方法一直复制到 end 所指定的元素,但是不包括该元素。如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。如果省略 end ,那么 slice 方法将一直复制到 arrayObj 的结尾。如果 end 出现在 start 之前,不复制任何元素到新数组中。
sort方法
返回一个元素已经排序的Array对象。
arrayobj.sort(sortfunction)
sortFunction
可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。
sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。
如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:
- 负值,如果所传递的第一个参数比第二个参数小。
- 零,如果两个参数相等。
- 正值,如果第一个参数比第二个参数大。