介绍下javascript array对象。
length属性:
作用:
返回数组中元素的个数。
实例:
复制代码 代码示例:
var name=new Array();
name[0]="hello";
name[1]="world";
name[11]="Javascript";
var nameLen=name.length;//此时值为12
concat()方法:
作用:
将两个独立的数组连接在一起
参数:
为一个独立的参数
返回值:
连接后的新的数组
实例:
复制代码 代码示例:
var name=new Array("Paul","Nick");
var age=new Array(20,30);
var concatArray=name.concat(age);//新数组为:Paul,Nick,20,30
slice()方法:
作用:
复制数组的一部分
参数:
欲复制数组的第一个元素的索引值;
所复制子数组末尾元素的索引值【可选】
返回值:
复制出的新的数组
实例:
复制代码 代码示例:
var name=new Array("Paul","Sarah","Jermey","Adam","Bob");
var sliceArray=name.slice(1,3);//新数组元素:Sarah,Jermey,Adam
join()方法:
作用:
将数组中所有元素连接起来
参数:
在数组元素之间插入的字符串
返回值:
连接后的字符串
实例:
复制代码 代码示例:
var name=new Array("Paul","Sarah","Jermey","Adam","Bob");
var joinArray=name.join(",");//返回值为:"Paul,Sarah,Jermey,Adam,Bob"
sort()方法:
作用:
如果数组包含类似的数据,例如姓名或年龄,就可以按照字母或者数字的顺序排列他们
最后数组中的元素将按照升序排列
实例:
复制代码 代码示例:
var name=new Array("Paul","Sarah","Jermey","Adam","Bob");
name.sort();//此后,name中的元素序列为:Adam,Bob,Jermey,Paul,Sarah
reverse()方法:
作用:
反转数组中元素的序列。即靠前元素放到后面,靠后元素移动到前面
实例:
复制代码 代码示例:
var age=new Array(12,24,34,40);
age.reverse();//此时age中序列为:40,34,24,12
Array的新方法
【注意】下面的7个方法都不能用于IE,可用于FireFox、Safari、Opera、Chrome
indexOf()和lastIndexOf()方法:
作用:
类似于String对象中的属性,它们分别返回某元素在数组中的第一个出现位置和最后一个出现的位置
参数:
要在Array中查找的数组元素
返回值:
该元素在数组中的索引值
实例:
复制代码 代码示例:
var color=new Array("red","yellow","red","green","red");
var firstPosition=color.indexOf("red");//此时值为:0
var lastPosition=color.lastIndexOf("red");//此时值为:4
接下来的5个方法都称为迭代方法,因为它们会迭代(循环)数组。另外,这些方法在迭代数组时,会在每个
元素上执行用户定义的函数。这些方法使用的函数必须遵循一个规则:该函数必须接受三个参数:第一个是
元素的值,第二个是元素的索引,第三个是数组的本身。
every()、some()和filter()方法:
作用:
它们用来测试每个元素。
every()用来测试数组中所有元素是否通过了测试
some()用材测试数组元素中某些元素是否通过了测试
filter()对数组中每个元素执行某函数,若返回值是true,则把该元素添加到filter()返回的另一个数组中
实例:
复制代码 代码示例:
var num=new Array(1,2,3,4,5);
function isLessThan3(value,index,array)
{
var returnValue=false;
if(value<3)returnValue=true;
return returnValue;
}
var EVERY=num.every(isLessThan3);//BOOL值,为false,因为有3、4、5不小于3
var SOME=num.some(isLessThan3);//BOOL值,为true,因为有1、2是小于3的
var FILTER=num.filter(isLessThan3);//是一个数组,序列为:1,2
forEach()、map()方法:
作用:
这两个函数不用函数测试数组中的每个元素,而是以某种方式使用数组中的元素执行某类操作。
实例:
复制代码 代码示例:
var num=new Array(1,2,3,4,5);
function doubleAndAlert1(value,index,array)
{
var result=value*2;
alert(result);
}
num.forEach(doubleAndAlert1);
//forEach的函数中不能有返回值,可以有操作。这里就是每次弹出一个
对话框,对话框中显示
//两倍的数字。
function doubleAndAlert2(value,index,array)
{
var result=value*2;
return result;
}
var returnValue=num.map(doubleAndAlert2);
//与上面对比知,map中的函数支持返回值,而且该返回值直接被返回到map返回的数组中
//此处,returnValue数组中的序列为:2,4,6,8,10