JavaScript数组函数总结

数组数据项的连接与分割:

var  mya = new  Array();

mya[
0 ] = " aa " ;

mya[
1 ] = " bb " ;

mya[
2 ] = " cc " ;

mya[
3 ] = " dd " ;

function  joinArray() {

var myText=mya.join(",");

alert(myText);

}
 

function  splitArray() {

var mya2=myText.split(",");

alert(mya2[i]);

}

 

用array.concat()方法可以把两个array对象连接为一个新的array对象。例如:

var  array1 = new  Array( 1 , 2 , 3 );

var  array2 = new  Array( " a " , " b " , " c " );

var  array3 = array1.concat(array2);

// result:array3 with values 1,2,3,"a","b","c"


var  arrayText = myArray.join( " , " );

 

堆栈:

array.pop()

array.push(valueOrObject)

array.shift()

array.unshift(valueOrObject)

push()和pop()在数组的末端工作,shift()和unshift()工作在数组的前端。

当把一个值push()到一个数组中时,这个值被作为最后一个数据项追加到数组中。

当使用array.pop()方法时,数组中的最后一项就会从堆栈中移出并作为返回值返回,同时数组的长度减1。

当把一个值unshift()到一个数组中时,这个值被作为第一个数据项插入到数组中。

当使用array.shift()方法时,数组中的第一项就会从堆栈中移出并作为返回值返回,同时数组的长度减1。

 

array.reverse() --> 返回值:和原数组顺序相反的数组项

array.slice(startIndex[,endIndex]) --> 返回值:数组

此方法需要一个参数,也就是提取的起始索引位置。如果不指定第二个参数,提取将一直进行到数组的结尾,

否则,只提取到第二个参数指定的位置,但不包括那个位置。

 

array.splice(startIndex,deleteCount[,item1[,item2[,...itemN]]]))

如果需要从数组中删去一些项,使用array.splice()方法能简化这一任务,否则还需要从原始数组的选择项中组合一个新数组。

所需的两个参数中第一个是基于0的索引整数,它指向当前数组中被删除的第一项;

第二个参数也是一个整数,它说明了要从数组中删除多少个连续项。删除数组项影响了数组的长度,被删除的项作为其自身的数组被splice()方法返回。

还可以使用splice()方法来替换数组项。从第三个参数开始是可选参数,它允许提供要插入数组的数据元素,这些数据元素要替换被删除的数据项。

被加入的数据项可以是任何JavaScript数据类型,新数据项的数量不一定必须等于被删除的数据项的数量。

实际上,通过将第二个参数指定为0,可以使用splice()向数据的任何位置插入一个或多个数据项。

 

array.toLocaleString() --> 一般使用数组中的每一项使用逗号分开。

array.toString() --> 此方法的精确的字符串转化取决于特定的浏览器的实现方式。

一般使用兼容器更强的旧方法array.toString()

 

array.sort([compareFunction]) --> 返回值:以compareFunction算法控制顺序的数组项

排序改变了原始数组的排列顺序!

默认调用排序时,是以字符的ASCII值为标准。

比较函数的返回值:

<0 : 值b排在a后面

=0 : a和b的顺序不改变

>0 : 值a排在b后面

例如:按数字顺序排序

 

myArray = new  Array( 12 , 34 , 2 , 123 )

function  compare(a , b) {

  
return a-b

}


myArray.sort(compare)

 

 

例如比较字符串数组中的每一个数据项的最后一个字符,按字母顺序来排序

 

function  compare(a , b) {

  
//last character of array strings

  
var aComp=a.charAt(a.length - 1)

  
var bComp=b.charAt(b.length - 1)

  
if(aComp < bComp){return - 1}

  
if(aComp > bComp){return 1}

  
return 0

}

 

 

例如:如果一个数组中有这样的对象,它们的属性值定义了关于雇员的信息,其中一个属性是雇员的年龄,定义为字符串类型。

用下面的比较函数并以对象的age属性所对应的数值为基础,就可以排序这个数组

 

function  compare(a , b) {

  
return parseInt(a.age)-parseInt(b.age)

}

 

你可能感兴趣的:(Javascript)