数组定义
数组就是一组数据的集合
js定义数组方法:
//对象的实例创建
var aArray1 = new Array(1,2,'sadf');
//直接量创建
var aArray2 = [1,2,'sadf'];
alert(aArray1);
alert(aArray2);
数组操作方法
定义一个数组:
var alist = [1,2,3,'dasda'];
- 获取数组的长度:alist.length;
alert(alist.length);//弹出4
- 用下标操作数组的某个数据:alist[2];
alert(alist[2]);//弹出3
- join()将数组成员通过以一个分隔符合并成字符串;
alert(alist.join(''));//弹出123dasda
alert(alist.join('-'));//弹出1-2-3-dasda
注:不改变alist数组本身,只是有一个返回值。
- push()和pop()从数组最后增加成员或删除成员;
alist.push(5);
alert(alist);//弹出1,2,3,dasda,5
alist.pop();
alert(alist);//弹出1,2,3,dasda
注:会改变数组本身。
- unshift()和shift()从数组前面增加成员或删除成员;
alist.unshift(8);
alert(alist);//弹出8,1,2,3,dasda
alist.shift();
alert(alist);//弹出1,2,3,dasda
注:会改变数组本身。
- reverse()将数组反转;
alert(alist.reverse());//弹出dasda,3,2,1
注:不改变alist数组本身,只是有一个返回值。
- indexOf()返回数组中元素第一次出现的索引值;
var alist1 = [1,2,1,3]
alert(alist1.indexOf(1));//弹出0
- splice()在数组中增加或删除后成员;
alist.splice(1,2,'a','b','c');//从第一个元素开始,删除两个元素(不包括第一个),在此位置上增加a,b,c这三个元素。
alert(alist);//弹出1,a,b,c,dasda
注:会改变数组本身。
多维数组
多维数组指的是数组的成员也是数组的数据。
批量操作数组中的数据,需要用到循环语句。
var aArray = [[1,2,3],['a','b','c'],[1,5,'g']];
alert(aArray[2][2]);//弹出g
循环语句
程序中进行有规律的重复性操作,需要用到循环语句。
常用于批量提取数组中的数据。
for循环
for(var i=0; i<len;i++){
.......
}
练习
- 将数组中的数据分别用弹框弹出
window.onload = function(){
var aList = [1,2,5,6,7,9,8,3];
var len = aList.length;
for(var i=0;i<len;i++){
alert(aList[i]);//弹出1,2,5,6,7,9,8,3
}
}
- 将数组中的数据放入到页面中的列表里
window.onload = function(){
var aList = ['a','b','c','d','e','f'];
var sUl = document.getElementById('ul');
var len = aList.length;
for(var i=0;i<len;i++){
sUl.innerHTML += '<li>' + aList[i] + '</li>';
}
}
效果:
while循环(用的少)
var i=0;
while(i<8){
.....
i++;
}
数据去重
window.onload = function(){
var aList = [1,2,3,4,1,2,3,4,5,6,9,8,7,8,9,5,2,1];
var aList_null = [];
var len = aList.length;
for(var i=0;i<len;i++){
if(aList.indexOf(aList[i]) == i){
aList_null.push(aList[i]);
}
}
alert(aList_null.sort());//弹出1,2,3,4,5,6,7,8,9。不加sort弹出1,2,3,4,5,6,9,8,7
}