Javascript入門學(xué)習(xí)第四篇 js對(duì)象和數(shù)組
更新時(shí)間:2008年07月06日 10:00:06 作者:
上篇文章講了js中的變量,表達(dá)式,和運(yùn)算符 還有一些 js 語句.
這章我們來探討js中的對(duì)象和數(shù)組。
7, 添加數(shù)組的內(nèi)存使用:
a[10] = “test” ; //添加新的元素
內(nèi)存的使用:
比如:
a[0] = “1” ;
a[10] =” 10” ;
那么js值給下標(biāo)為0 和10的元素分配內(nèi)存,中間的9個(gè)元素不被分配;
注:數(shù)組也可以添加到對(duì)象中;
比如;
var a = new Circle(1,2,3);
a[0]= “test” ;
這個(gè)例子定義了一個(gè)名為” 0 “的新對(duì)象屬性。
只將數(shù)組元素添加到一個(gè)對(duì)象中并不會(huì)使它成為數(shù)組。
8, 刪除數(shù)組:
var a = [1,2];
delete a[0];
alert(a[0]) //輸出 undefined
alert(a[1]) //輸出 2
由例子可以看出,delete刪除其實(shí)沒有真正刪除,只不過把元素設(shè)置為undefined;
如果要真正刪除,可以使用Array.shift(),等方法。
比如:
var a = [1,2];
delete a[0];
alert(a[0]) //輸出 undefined
alert(a[1]) //輸出 2
a.shift(); //刪除數(shù)組的第一個(gè)元素
alert(a[0]) //輸出 2
alert("length:"+a.length);
alert(a[1]) //輸出 undefined ; 1已經(jīng)被刪除了,其實(shí)數(shù)組已經(jīng)的長度只有 1 了;
9,數(shù)組的length:
a[49] = “a”;
// 那么這個(gè)數(shù)組的長度是 50 ;
length屬性經(jīng)常用于遍歷數(shù)組元素;
比如:
var a = [“a” , “b “ ,”c” ];
for(var i = 0 ; i< a.length ; i++){
alert(a[i]);
}
這個(gè)是在假定元素是連續(xù)的,如果不是這種情況:
必須檢測(cè)每個(gè)元素是否被定義 : 比如:
for(var i = 0 ; i< a.length ; i++){
if(a[i]){
alert(a[i]);
}
}
多維數(shù)組: a[i][j] ;
10,數(shù)組的一些方法:
1):join() 方法:
把一個(gè)數(shù)組的所有元素都轉(zhuǎn)換成字符串。
比如:var a = [1,2,3];
var s = a.join(); // 輸出 s==1,2,3
當(dāng)然也可以 指定一個(gè)分隔符;
比如;
s = a.join(“,”);
這個(gè)方法跟String.split()相反, split()將一個(gè)字符串分割成幾個(gè)片段來創(chuàng)建數(shù)組;
2):reverse () 方法:
把一個(gè)數(shù)組顛倒。
var a = new Array(1,2,3);
a.reverse();
var s = a.join(); //s == “3,2,1”
3):sort() 方法:
排序
♂:如果不給傳參數(shù),那么按照字母順序?qū)?shù)組元素排序。
var a = new Array(“ee”,”df”,”b”);
a.sort()
var s = a.join(“, ”); // s == “b, df, ee”
♂:如果傳參數(shù):
比如:
var a = [33,4,1111,222]
a.sort(); // 排序 : 1111 ,222 ,33,4
a.sort(function(x,y){
return x-y;
});
var s = a.join(); //輸出 4, 33,222,1111
//可以從例子看出,排序如果x > y ,那么第一個(gè)參數(shù)就排在第2個(gè)參數(shù)后,
比如; 1111 ,222 -? 1111-222>0 -? 則 222 , 1111
另外注意下 字母排序:因?yàn)閖s是區(qū)分大小寫,所以排序的時(shí)候,把字符統(tǒng)一成大寫或者小寫,再排序。
4):concat() 方法:
var a = [1,2,3];
a= a.concat(4, [5,6],7);
a=a.join(); //輸出 1,2,3,4,5,6,7
alert(a)
注意:
如果是數(shù)組里面還有數(shù)組 ,就不能展開了。
比如:
var a = [1,2,3];
a = a.concat(4,[5,[6,6]],7);
alert(a); //這個(gè)看不出來
a = a.join("|");
alert(a); //分割后,注意有個(gè)逗號(hào)
-------------------------------------
var c = [1,2,3];
var d =new Array(1,2,3);
alert(c); //1,2,3
alert(d); //1,2,3
//之所以不輸出Object ,是因?yàn)?
//數(shù)組是一個(gè)具有額外功能層的對(duì)象.
//我們記住他的特殊性。
5):slice() 方法:
返回?cái)?shù)組某一個(gè)片段。跟字符串的substring方法類似。
6):splice() 方法:
首先他跟 slice 方法 只有一個(gè)字母的差別,不過用處完全不同。
他可以用來刪除。
var a = [1,2,3];
a = a.splice(0,2);
alert(a); // 輸出 1, 2
a = a.splice(1,2);
alert(a); // 輸出 2 。 如果是 a = a.splice(0 , 1) ; 輸出 1
a = a.splice(1,2);
alert(a); // 沒有刪除任何數(shù)組 , 輸出 空 數(shù)組
他也可以插入數(shù)組。具體方法:
var array1 = new Array("1","2","3","4");
array1.splice(1,0,"5");//在 第2個(gè)元素后面,插入 5 ; 如果第2個(gè)參數(shù)為0,則不刪除。
document.write(array1+"<br>"); //輸出 1, 5 ,2 ,3,4
array1.splice(2,3,"7","8") // 刪除 第3個(gè)的 元素后的 3個(gè)元素。也就是 第3個(gè),第4個(gè),第5個(gè)元素。然后在這個(gè)位置上插入7,8
document.write(array1);//輸出 1, 5 ,7,8
注意:和concat()不同,splice并不將他插入的參數(shù)展開。也就是如果插入一個(gè)數(shù)組,他就是插入數(shù)組本身,還不是數(shù)組的元素。
而concat()插入數(shù)組的話,就會(huì)把數(shù)組展開,插入數(shù)組中的元素,不過當(dāng)插入的數(shù)組里
還有數(shù)組的時(shí)候,就不會(huì)展開了。
7):push() 方法和pop()方法:
push(): 將一個(gè)或者多個(gè)數(shù)組 附加到數(shù)組的尾部。
pop() : 刪除數(shù)組的最后一個(gè)元素。
var array1 = new Array("1","2","3","4");
array1.push("5");
document.write(array1+"<br>"); //輸出 1, 2 ,3 ,4,5
array1.pop()
document.write(array1);//輸出 1, 2 ,3 ,4
8):unshift() 方法和shift ()方法:
跟push和pop唱反調(diào)。。。
unshift (): 將一個(gè)或者多個(gè)數(shù)組 附加到數(shù)組的頭部。
shift ():刪除數(shù)組的第一個(gè)元素。
數(shù)組的一些方法是比較多,看起來也比較煩。所以大家應(yīng)該有點(diǎn)耐心。
另外可以參考這篇文章;
http://www.cssrain.cn/article.asp?id=438
總結(jié):這章主要講了對(duì)象和數(shù)組的一些方法。比較難記和難理解。不過任何事情都是從難到容易的過程。一次沒看懂,再看一次。。。書讀百遍,其意自現(xiàn)。。。。。。
也許你不需要讀一百遍呢. ^_^。
是不是感覺看了這么多js概念,已經(jīng)迫不及待的想自己寫點(diǎn)例子什么的。好吧。
下章我們 來點(diǎn)實(shí)戰(zhàn)的。。。。
如果還有不懂,可以google 搜索資料. (
相關(guān)文章
NodeJS url驗(yàn)證(url-valid)的使用方法
本文主要介紹了NodeJS url驗(yàn)證(url-valid)模塊的使用方法,最后提供了實(shí)例代碼供大家參考2013-11-11

一文帶你了解JavaScript基礎(chǔ)之深拷貝和淺拷貝
這篇文章主要為大家介紹了JavaScript深拷貝和淺拷貝,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
2021-12-12