<script type="text/javascript">
//使用数组直接量创建数组
var aEmpty = [];
var aPrimes = [2,3,5,7,11];
var aMisc=[1.1, true, "a",];
console.log(aMisc.length);
//构造函数创建数组
//没有参数时,将创建一个空数组,等同于直接量[]
var aTemp=new Array();
//一个参数时,指定长度
//该参数只能是正整数
var aLength=new Array(10);
//多个参数时,设置数组元素
var aSeveral=new Array(5,4,3,2,1,"hello world",[1,2,3]);
console.log(aSeveral[6][0]);
</script>
[]
操作符访问元素<script type="text/javascript">
//读写元素
//[]操作符访问元素,[]里可以是返回非负整数值的任意表达式
var a=aPrimes[1];
var b=aPrimes[a++];
var c=aPrimes['1'];
//写元素,任意非负正整数表达式
aPrimes[2]=5;
aPrimes[3+1]=10;
//如果使用负数或非整数来索引数组,数值会转换为字符串,作为属性名来使用
aPrimes[-2]=11;
aPrimes["abc"]=12;
console.log(aPrimes,aPrimes.length,aPrimes.abc);
</script>
<script type="text/javascript">
//数组元素的添加和删除
//元素的添加
var aZero=[];
//为新索引复制添加元素
aZero[0]=2;
//push方法数组末尾添加元素
aZero.push("zero");
//unshift方法在数组首部添加元素
aZero.unshift("new");
aZero.length=4;
console.log(aZero,aZero.length);
//元素的删除
//length属性赋短值删除元素
aZero.length=3;
console.log(aZero);
//pop方法数组末尾添加元素
aZero.pop();
console.log(aZero);
//shift方法在数组首部添加元素
aZero.shift();
console.log(aZero);
</script>
<script type="text/javascript">
//数组遍历
var aNumber=[1,2,3,4,5,6,7,8];
//for循环遍历
for (var i = 0; i < aNumber.length; i++) {
console.log(aNumber[i]);
}
//如果是稠密数组,需要跳过null、undefined和不存在的元素
aNumber[3]=undefined;
delete(aNumber[5]);
for (var i = 0; i < aNumber.length; i++) {
if(!aNumber[i]) continue;
console.log(aNumber[i]);
}
//如果是稀疏数组,可以使用for in循环
var aName=[];
aName[0]="jack";
aName[3]="tom";
for(var a in aName){
console.log(aName[a]);
}
//for in 循环会枚举继承的属性名
//因此,除非使用额外的检测方法来来过滤属性,一般不使用for in来遍历数组
for(var i in aName){
//if(!aName.hasOwnProperty(i)) continue; //跳过继承的属性
if((String(Math.abs(Number(i))))!==i) continue; //跳过非负整数的i
console.log(aName[i]);
}
</script>
[][]
操作符访问元素<script type="text/javascript">
//多维数组
var table=new Array(10);
for(var i=0;i<table.length;i++){
table[i]=new Array(10);
for(var j=0;j<table[i].length;j++){
table[i][j]=i*j;
}
}
var product=table[5][7];
console.log(product);
</script>
<script type="text/javascript">
//数组操作
//join 将数组中的所有元素转化为字符串并连接在一起
var aNum=[1,2,3,4,5,6,7];
console.log(aNum.join(),aNum.join('-'));
//reverse 数组元素的颠倒顺序
console.log(aNum.reverse());
//sort 数组元素排序,默认是按照字典顺序排序
aNum[4]=8;
console.log("排序前:"+aNum);
aNum.sort();
console.log("排序后:"+aNum);
aNum.sort(function(a,b){
return b-a;
});
console.log("自定义排序后:"+aNum);
//concat 连接数组元素,并返回新数组
console.log(aNum.concat(9,10),aNum);
//slice 从已有的数组中返回选定的元素
console.log(aNum.slice(1,2)); // [7]
console.log(aNum.slice(1)); // [7, 6, 5, 4, 2, 1]
console.log(aNum.slice(-4)); // [5, 4, 2, 1]
//splice 数组中添加/删除项目,然后返回被删除的项目
</script>