一、基础内容
1.数组元素
数组元素是指存储在数组中并赋予唯一索引号的数据段,各元素的数据类型可以是任意有效的JavaScript数据类型,元素按添加 进数组的顺序存储于数组中
2.多维数组
单维数组是指可以通过一个索引号即可指定一个元素的数组,多维数组是指通过两个或两个以上的下标索引号才能确定一个元 素的数组,不支持严格意义上的
多维数组,但是由于数组元素数据类型可以任意,因此可以将数组对象作为数组元素以实现近似多维数组的功能
3.创建数组
a.创建一个空数组 var array=new Array();
其中Array()为数组对象的构造函数
b.通过指定数组长度创建数组(数组元素个数即为数组长度,数组对象的length属性指示数组的长度)
var array=new Array(size)
size指明新建的数组有多少个元素。数组对象的length将被设置为size,仅指定数组长度但没有实际填充元素的数组得不到数据存 储空间。
c.通过指定数组元素创建数组(常用在数组元素准备就绪的情况下)
var array=new Array(元素1,元素2,,元素3...)
<script language="JavaScript">
var array=new Array("Lily","Alice","Lucy","Jouch");
for(i in array){ <!--遍历输出数组中的每个元素-->
document.write(array[i] + " ");
}
</script>
d.直接创建数组(使用"[]"运算符直接创建,数组元素也是创建式指定的)
var array=["Lily","Alice","Lucy","Jouch"];
二、数组元素基本操作
1.读取数据元素
使用"[]"运算符,一次可以读取一个运算符,目标元素通常由下标索引号决定,使用"[]"运算符通过递增或递减下标索引即可遍历数 组的所有元素
数组名.[下标索引];
var array=new Array("Lily","Alice","Lucy","Jouch");
var find=array[1];
2.添加数组元素
使用push方法可以向数组尾部添加元素,使用unshift方法可以向数组头部添加元素
var student=new Array("Lily","Alice","Lucy","Jouch");
student.push("铁蛋");
也可以使用"[]"运算符指定一个新下标来添加元素,新元素添加到指定的下标处,如果指定的下标超过数组长度,数组将被扩展 为新下标指定的长度
3.删除数组元素
数组元素可以动态删除,剩下的元素按原顺序重新组合为新数组,下标也被重新按从0开始顺序赋予每个元素,通常使用delete 运算符删除一个指定的元素,如果需要删除全部元素只需要删除数组对象即可
var student=new Array("Lily","Alice","Lucy","Jouch");
delete student[0];
4.数组元素的个数
length属性指示了数组元素的个数,在得知数组长度的情况下可以方便地遍历整个数组
var student=new Array("Lily","Alice","Lucy","Jouch");
var len1=student.length;
尽管指定了数组的length属性,真正的有效元素只包含已经存入数据的元素,其他没有真正填充数据的元素仍然为空
三、数组对象常见操作(Array对象提供的常用方法包括toString,join,push,pop,unshift,shift,concat,splice,slice,reverse,sort和 toLocalString等)
1.将数组转换为字符串
toString方法将数组表示为字符串,各元素按顺序排列组合,使用","分隔符组合为字符串返回,通常使用在全部输出数组元素数 据的场合。
对象名.toString([radix]);
radix为可选项,表示进制,当对象是数字对象时该参数起作用
<script language="JavaScript">
var student=new Array("Lily","Alice","Lucy","Jouch");
document.write(student.toString());
</script>
2.将数组元素连接成字符串
toString方法将数组所有元素使用","分隔符组合为字符串,分隔符固定不变。
使用join方法可以指定连接符号,该方法同样是将数组元素组合为字符串,但是连接符号由用户指定
数组名.join(分隔符)
注意分隔符是必选项,作为各元素间的分隔字 符
<script language="JavaScript">
var student=new Array("Lily","Alice","Lucy","Jouch");
document.write(student.join("*"));
</script>
3.在数组尾部添加元素
push方法,一次可添加单个元素或多个元素到数组末端,如果添加的是数组,仅将数组对象的引用添加为原数组的一个元素, 而不是所有元素添加至其中
数组名.push(元素1,元素2,元素3...);
<body>
<h1>push方法的使用</h1>
<script language="JavaScript">
var student=new Array();
while(true){
var name=prompt("请输入名字","名字");
if(name=="null")break;
student.push(name);
}
var list=student.join(" ");
document.write(list);
</script>
</body>
4.删除数组中最后一个元素
pop方法的作用是移除数组末尾的一个元素,与delete运算符不同的是,pop方法删除最后一个元素后将其引用返回,pop通常 结合push一起使用
数组名.pop();
<script language="JavaScript">
var student=new Array(1,2,3,4,5);
for(;student.length!=0;){
var handle=student.pop();
document.write("<br>已出: " + handle);
}
document.write("<br>全部出去!");
</script>
5.删除数组顶端的元素
shift方法移除数组的第一个元素并将其返回,该方法执行后数组剩下的元素相前移动,下标索引号重新调整从0开始顺序赋予所 有元素,shift方法和pop方法结合使用可以将数组当队列使用
数组名.shift();
6.在数组头部添加元素
unshift方法将元素插在数组的首部,一次可插入单个或多个元素,所有元素按顺序插入,操作完成后返回新数组的引用,新数 组的元素下标索引号将从0开始按顺序赋予各个元素
<script language="JavaScript">
var array=new Array(1,2,3);
array.unshift(4,5,6);
document.write(array); <!--结果4,5,6,1,2,3-->
</script>
7.添加元素并生成新数组
concat方法可以将多个数组的元素连接起来成为新的数组,新数组中的元素按连接时的顺序排列,该方法常用在合并多个数组
数组名.concat(item1,item2...)
item是可选项,表示要连接到"数组名"引用的数组末尾的其他项目,可以是数组对象也可以是单个数组元素,或者其他 JavaScript对象
<script language="JavaScript">
var queueA=new Array("顾客1","顾客2","顾客3","顾客4","顾客5");
var queueB=new Array("顾客A","顾客B","顾客C","顾客D","顾客E");
var qa=queueA.join("-");
var qb=queueB.join("-");
document.write("窗口前的两个队伍: ");
document.write("<br><li>" + qa);
document.write("<br><li>" + qb);
queueA=queueA.concat(queueB);
document.write("<br>合并后的新数组是: " + queueA);
</script>
8.删除、替换、插入数组元素
splice方法用于从一个数组中移除一个或多个元素,剩下的元素组成一个新的数组,移除的元素组成另一个数组并返回它的引用
此时可以在移除的开始位置处顺带插入一个或多个新元素,达到修改替换数组元素的目的
数组名.splice(start,deletecount,[item1,item2...]);
start 必选项,表示从数组中剪切的起始位置下标索引号
deletecount 必选项,表示切取的元素个数
item 可选项,表示切取时插入原数组切入点开始处的一个或多个元素,要求为有效的JavaScript对象
总的来说,splice方法可以对数组进行剪切(start,count)、替换(start,count,item...)、插入操作(start,0,item...)
<script language="JavaScript">
var queueA=new Array("顾客1","顾客2","顾客3","顾客4","顾客5");
document.write("<li>原来的队伍: " + queueA);
<!--从下标为2的地方开始剪切3个,组成新的数组返回给queueB-->
var queueB=queueA.splice(2,3);
document.write("<li>调整后的队伍是: " + queueA);
document.write("<li>剪切下来的数组是: " + queueB);
<!--从位置1剪切0个元素,相当于在位置1处添加三个顾客-->
queueA.splice(1,0,"顾客5","顾客6","顾客7");
document.write("<li>进行操作后的数组是: " + queueA);
</script>
结果:
原来的队伍: 顾客1,顾客2,顾客3,顾客4,顾客5
调整后的队伍是: 顾客1,顾客2
剪切下来的数组是: 顾客3,顾客4,顾客5
进行操作后的数组是: 顾客1,顾客5,顾客6,顾客7,顾客2
9.获取数组中一部分元素
slice方法作用是切取数组的一段元素,即切取指定下标索引区间中的元素作为新数组返回
数组名.slice(start,end)
start必选项,表示将要切取的起始下标索引号
end可选项,表示要切取的结束下标索引号,如果省略该项则自动切取到数组结尾。
slice方法一直复制到end所指定的元素,但是不包括该元素,如果start为负,将它作为start+length处理,此处length是数组长度; 同理,如果end为负,则将其作为end+length处理。如果end出现在start之前,不复制任何元素
<script language="JavaScript">
var queueA=new Array();
queueA.push("顾客1","顾客2","顾客3","顾客4","顾客5");
document.write("<li>原来的队伍: " + queueA);
queueA=queueA.slice(1,4); <!--切取下标从1-3的数组元素作为新数组并返回-->
document.write("<li>进行操作后的数组是: " + queueA); <!--输出切取下来的数组-->
</script>
结果:
原来的队伍: 顾客1,顾客2,顾客3,顾客4,顾客5
进行操作后的数组是: 顾客2,顾客3,顾客4
10.颠倒数组元素的顺序
数组名.reverse();
reverse方法将数组中所有元素的次序反转,然后返回元素顺序反转后的数组对象的引用(在本数组基础上进行反转,具体见下例)
<script language="JavaScript">
var queueA=new Array();
queueA.push("顾客1","顾客2","顾客3","顾客4","顾客5");
document.write("<li>原来的队伍: " + queueA);
var queueB=queueA.reverse(); <!--对queueA数组进行反转-->
document.write("<li>检验原数组是否变化: " + queueA); <!--貌似是在queueA数组基础上进行反转-->
document.write("<li>进行操作后的数组是: " + queueB);
</script>
结果:
原来的队伍: 顾客1,顾客2,顾客3,顾客4,顾客5
检验原数组是否变化: 顾客5,顾客4,顾客3,顾客2,顾客1
进行操作后的数组是: 顾客5,顾客4,顾客3,顾客2,顾客1
11.对数组元素进行排序
sort()方法可以将一个数组中所有元素进行排序,执行时首先将调用该方法的数组元素按用户指定方法进行排序,排序后的所 有元素构成一个新的数组并返回之
数组名.sort(sortfunction);
sortfunction可选项,用来确定元素顺序的函数名称,如果改参数省略将按照ASCII字符顺序对数据进行升序排列,其中 sortfunction是一个双参数函数
它必须返回下列值之一:
负值:表示第一个参数小于第二个参数
零:表示两个参数相等
正直:表示第一个参数比第二个参数大
使用排序规则回调函数sortfunction(),用户可以规定sort函数如何对数组中的元素进行排序
<script language="JavaScript">
var queueA=new Array();
function sortfunc(a,b){ <!--设置从大到小排序-->
if(a>b)return -1;
else if(a==b)return 0;
else return 1;
}
queueA.push(5,8,1,4,9,0);
document.write("<li>原来的队伍: " + queueA);
queueA.sort(sortfunc);
document.write("<li>进行操作后的数组是: " + queueA);
</script>
结果:
原来的队伍: 5,8,1,4,9,0
进行操作后的数组是: 9,8,5,4,1,0
12.讲对象转换为本地字符串
toLocaleString()方法的作用是将一个对象转换为本地字符串,主要针对日期对象
obj.toLocaleString();
obj属于Array、Date、Number、Object类型对象
<script language="JavaScript">
var date=new Date();
alert(date.toLocaleString());
</script>