1.創(chuàng)建數(shù)組
(1)數(shù)組直接量
1.數(shù)組直接量的值可以是任意表達(dá)式
2.如果省略數(shù)組直接量的某個(gè)值,聲量的那個(gè)元素將被賦值為undefined 。eg:[1,,3]中間的元素為undefined翅溺;[,,]該數(shù)組有兩個(gè)元素曹铃,并不是三個(gè),也就是說數(shù)組直接量的語法允許有可選的結(jié)尾的逗號(hào)寺鸥。
(2)構(gòu)造函數(shù)Array()
new Array()丑掺,該方法創(chuàng)建一個(gè)空數(shù)組获印,等同于直接量[]
new Array(10),可以指定長度
創(chuàng)建時(shí)可以初始化,var array = new Array(4,5,6,"array")
2.讀寫數(shù)組
使用[]操作符讀取數(shù)組元素街州,數(shù)組是一種特殊對(duì)象兼丰,在我們利用數(shù)字索引值時(shí)玻孟,js將數(shù)字轉(zhuǎn)化成字符串,然后將其作為屬性名來使用鳍征。所有的數(shù)組都是對(duì)象黍翎。
var a = ["array"];
a[1]=3;
var b = a[0];
因?yàn)閿?shù)組本質(zhì)上是一個(gè)對(duì)象,在使用非負(fù)整數(shù)做為索引向數(shù)組中添加元素時(shí)艳丛,該數(shù)組的length屬性會(huì)加1匣掸,反之,使用其他方式向數(shù)組中添加元素是氮双,該數(shù)組的length屬性是不變的碰酝,只是該數(shù)組中會(huì)增加一個(gè)屬性。例如[,1,2,key:value]
3.稀疏數(shù)組
注意區(qū)分?jǐn)?shù)組元素為undefined與數(shù)組元素不存在的區(qū)別
var a =[,,]該數(shù)組中有兩個(gè)元素眶蕉,且都為undefined
var b= [];
b[5]=3;該數(shù)組有六個(gè)元素砰粹,其中5個(gè)不存在
4.數(shù)組長度
- 當(dāng)數(shù)組是稀疏數(shù)組時(shí)唧躲,數(shù)組長度>元素個(gè)數(shù)
- var a= [1,2,3,4];
a.length=2;//此時(shí)a=[1,2]
Object.defineProperty(a,"length",{writable:flase});//此時(shí)length的值不能被更改
向數(shù)組中添加和刪除元素
- //添加元素
a=[];
a[1]=3;//a=[3]
a.push("element");//a=[3,"element"]
a.push("1","2");//可以添加多個(gè),a=[2,'element','1','2']- //刪除元素
delete a[1];//a=[,'element','1','2'],delete不改變數(shù)組的長度
5.遍歷數(shù)組
- var keys = Object.keys(o);
var values = [];
for(var i=0;i<keys.length;i++){
var key = keys[i];
values.push(o[key])
}
for(var index in array){
//循環(huán)將一個(gè)可枚舉的屬性名(包括數(shù)組索引)賦值給循環(huán)變量造挽,不存在的索引不會(huì)被遍歷到
}
es5 //將data中的元素按照索引的順序傳遞給function函數(shù)。
data.forEach(function(x){....})
6.多維數(shù)組
多維數(shù)組可以理解為數(shù)組的數(shù)組弄痹,即數(shù)組中的每個(gè)元素又是一個(gè)數(shù)組
var table = new Array(10);
//創(chuàng)建一個(gè)10*10的數(shù)組
for(var i=0;i<table.length;i++){
table[i]=new Array(10);
}
7.數(shù)組的方法
- join() //String.split()互為逆操作
- Array.reverse()
- Array.concat()
- Array.push(),Array.pop();
- Array.unshift(),Array.shift();
- Array.toString(),Array.toLocalString()
- Array.forEach()
- Array.map()
- Array.every(),Array.some()
- Array.reduce(),Array.reduceRight()
- Array.indexOf(),Array.lastIndexOf()
8.數(shù)組類型
理解數(shù)組類型饭入、類數(shù)組對(duì)象以及可當(dāng)做數(shù)組處理的字符串