数组:数组是使用单独的变量名来存储一系列的值。
定义方式
一维数组
空数组
var a = new Array(); var b = []; var c = new Array(数组的长度);
注意:
var arr1 = [3]; // arr1.length == 1, arr1[0] == 3
var arr2 = new Array(3); // arr2.length == 3, arr2[0] == undefined
有数值的数组
var a = new Array("1","2"); var b = [1,2];
往数组里面添加元素
var arr = []; arr.push(3,4,5); alert(arr[1]);
效果如下:
通过下标,逐个添加,或者循环添加
arrt[1]=0;
arrt[2]=2;
遍历数组:
for循环:
var aa = new Array("1","2","3"); for(var i = 0;i<aa.length;i++){ document.write(aa[i]); }
效果如下:
for in循环:
var aa = {first:"zhangsan",second:"lisi","bb":"wangwu"}; for(var b in aa){ document.write(b); //b相当于下标 }
document.write("</br>"); var bb = new Array("a","b","c"); for(var i in bb){ document.write(bb[i]); //bb[i]是元素值 }
效果如下:
对数组的内置操作函数:
1.在数组末尾添加数据
var attr =[ 1,2,3]; attr.push(4); console.log(attr);
效果如下:
2.在数组开头添加数据
var attr =[ 1,2,3]; attr.unshift(4); console.log(attr);
效果如下:
3.删除数组最末尾的数;
var attr =[ 1,4,2,3]; attr.pop(); console.log(attr); var attr =[ 1,4,2,3]; attr.pop(4); 里面的数字不影响结果 console.log(attr);
删除数组开头的数据:
var attr =[ 1,4,2,3]; attr.shift(); console.log(attr); var attr =[ 1,4,2,3]; attr.shift(2); 里面的数字不影响结果 console.log(attr);
数组转字符串:
var attr =[ 1,4,2,3]; attr.join('+'); console.log(attr); 这是错的 !!!!!!!! var attr =[ 1,4,2,3]; var str= attr.join('+'); console.log(str);
反转排序:
var attr =[ 1,4,2,3]; attr.reverse(); console.log(attr);
数组排序:
var attr =[ 1,4,2,3]; attr.sort(); console.log(attr);
连接数组:
var arr1=[1,2,3]; var arr2=[4,5,6]; var arr3=[7,8,9]; var arr=arr1.concat(arr2,arr3,[10,11]); 可以是 [10,11] 形式, console.log(arr);
选择数组:slice:
var attr =[ 1,4,2,3,6,4,4,3]; var attr1 = attr.slice(2); 从下标为2开始截取一直到末尾; console.log(attr1);
var attr =[ 1,4,2,3,6,4,4,3]; var attr1 = attr.slice(2,5); 从下标为2开始截取到下标为5的位置, 但是选取不到下标为5的位置 console.log(attr1);
var attr =[ 1,4,2,3,6,4,4,3]; var attr1 = attr.slice(-3); 符号表示从最后一位开始截取到倒数第三位的位置(假设右数为第一位、第一位、。。。。) console.log(attr1);
var attr =[ 1,4,2,3,6,4,4,3]; var attr1 = attr.slice(-3,7); 右数第三位与下标为7的中间部分,但是取不到下标为7的位置; console.log(attr1);
var attr =[ 1,4,2,3,6,4,4,3]; var attr1 = attr.slice(3,-3); 下标为3的位置到右数第三位中间的数据
选取数组:splice
var attr =[ 1,4,2,3,6,4,4,3]; var attr1 = attr.splice(1,2); 第一个参数为下标为1的位置 第二个参数为长度; 在原来数组删除; console.log(attr,attr1);
var attr =[ 1,4,2,3,6,4,4,3]; var attr1 = attr.splice(1,2,100); 第三个参数为删除删除位置添加的数据; console.log(attr);
var attr =[ 1,4,2,3,6,4,4,3]; var attr1 = attr.indexOf(4); 第一个元素“4”出现时的下标; console.log(attr1);
var attr =[ 1,4,2,3,6,4,4,3]; var attr1 = attr.indexOf(3,4); 第二个参数为开始的下标从下标为4的位置找到第一个出现“3”时的下标 console.log(attr1);
var attr =[1,4,2,3,6,4,4,3]; var attr1 = attr.indexOf(6,3); //输出为4; (2,3) 输出为-1 (5,3) 输出为-1; (4,5) 包含第五位 console.log(attr1);
var attr =[1,4,2,3,6,4,4,3]; var attr1 = attr.lastIndexOf(4); 从最后一位开始找第一次出现“4”时的下标 console.log(attr1);
var attr =[1,4,2,3,6,4,4,3]; var attr1 = attr.lastIndexOf(4,5); 从下标为5往前开始找第一次出现“4”时的下标 console.log(attr1);