JS数组处理

JavaScript数组处理

Array, concat, join, length, reverse, slice, sort

Array对象

提供对创建任何数据类型的数组的支持。

1
2
3
arrayObj = new Array()
arrayObj = new Array([size])
arrayObj = new Array([element0[, element1[, ...[, elementN]]]])

concat方法(Array)

返回一个新数组,这个新数组是由两个或更多数组组合而成。

array1.concat([item1[, item2[, . . . [, itemN]]]])

concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。

要加的项目(item1 … itemN)会按照从左到右的顺序添加到数组。如果某一项为数组,那么添加其内容到 array1 的末尾。如果该项目不是数组,就将其作为单个的数组元素添加到数组的末尾。

以下为从源数组复制元素到结果数组:

  • 对于从正被连接到新数组的数组中复制的对象参数,复制后仍然指向相同的对象。不论新数组和源数组中哪一个有改变,都将引起另一个的改变。
  • 对于连接到新数组的数值或字符串,只复制其值。一个数组中值有改变并不影响另一个数组中的值。

join方法

返回字符串值,其中包括连接道一起的数组的所有元素,元素由指定分隔符分开。

arrayObj.join(separator)

如果数组中有元素没有定义或者为 null,将其作为空字符串处理。

1
2
3
4
5
6
function JoinDemo(){
var a, b;
a = new Array(0,1,2,3,4);
b = a.join("-");
return(b);
}

reverse方法

返回一个元素顺序被反转的Array对象。

arrayObj.reverse( )

reverse 方法将一个 Array 对象中的元素位置进行反转。在执行过程中,这个方法并不会创建一个新的 Array 对象。

如果数组是不连续的,reverse 方法将在数组中创建元素以便填充数组中的间隔。这样所创建的全部元素的值都是 undefined。

1
2
3
4
5
6
function ReverseDemo(){
var a, l; // 声明变量。
a = new Array(0,1,2,3,4); // 创建数组并赋值。
l = a.reverse(); // 反转数组的内容。
return(l); // 返回结果数组。
}

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 参数提供了一个函数,那么该函数必须返回下列值之一:

  • 负值,如果所传递的第一个参数比第二个参数小。
  • 零,如果两个参数相等。
  • 正值,如果第一个参数比第二个参数大。