Array 數組對象
數組對象是一個對象的集合,里邊的對象可以是不同類型的。數組的每一個成員對象都有一個“下標”,用來表示它在數組中的位置,是從零開始的
數組定義的方法:
- 定義了一個空數組:
var 數組名= new Array();
- 定義時指定有n個空元素的數組:
var 數組名 =new Array(n);
3.定義數組的時候,直接初始化數據:
var 數組名 = [<元素1>, <元素2>, <元素3>...];
我們定義myArray數組,并賦值,代碼如下:
var myArray = [2, 8, 6];
說明:定義了一個數組 myArray,里邊的元素是:myArray[0] = 2; myArray[1] = 8; myArray[2] = 6。
數組元素使用:
數組名[下標] = 值;
注意: 數組的下標用方括號括起來,從0開始。
數組屬性:
length 用法:<數組對象>.length;返回:數組的長度,即數組里有多少個元素。它等于數組里最后一個元素的下標加一。
數組方法:
數組連接concat()
concat() 方法用于連接兩個或多個數組。此方法返回一個新數組,不改變原來的數組。
語法
arrayObject.concat(array1,array2,...,arrayN)
參數說明:
注意: 該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本。
我們創建一個數組,將把 concat() 中的參數連接到數組 myarr 中,代碼如下:
<script type="text/javascript">
var mya = new Array(3);
mya[0] = "1";
mya[1] = "2";
mya[2] = "3";
document.write(mya.concat(4,5)+"<br>");
document.write(mya);
</script>
運行結果:
1,2,3,4,5
1,2,3
我們創建了三個數組,然后使用 concat() 把它們連接起來,代碼如下:
<script type="text/javascript">
var mya1= new Array("hello!")
var mya2= new Array("I","love");
var mya3= new Array("JavaScript","!");
var mya4=mya1.concat(mya2,mya3);
document.write(mya4);
</script>
運行結果:
hello!,I,love,JavaScript,!
指定分隔符連接數組元素join()
join()方法用于把數組中的所有元素放入一個字符串。元素是通過指定的分隔符進行分隔的。
語法:
arrayObject.join(分隔符)
參數說明:
注意:返回一個字符串,該字符串把數組中的各個元素串起來,用<分隔符>置于元素與元素之間。這個方法不影響數組原本的內容。 我們使用join()方法,將數組的所有元素放入一個字符串中,代碼如下:
<script type="text/javascript">
var myarr = new Array(3);
myarr[0] = "I";
myarr[1] = "love";
myarr[2] = "JavaScript";
document.write(myarr.join());
</script>
運行結果:
I,love,JavaScript
我們將使用分隔符來分隔數組中的元素,代碼如下:
<script type="text/javascript">
var myarr = new Array(3)
myarr[0] = "I";
myarr[1] = "love";
myarr[2] = "JavaScript";
document.write(myarr.join("."));
</script>
運行結果:
I.love.JavaScript
顛倒數組元素順序reverse()
reverse() 方法用于顛倒數組中元素的順序。
語法:
arrayObject.reverse()
注意:該方法會改變原來的數組,而不會創建新的數組。
定義數組myarr并賦值,然后顛倒其元素的順序:
<script type="text/javascript">
var myarr = new Array(3)
myarr[0] = "1"
myarr[1] = "2"
myarr[2] = "3"
document.write(myarr + "<br />")
document.write(myarr.reverse())
</script>
運行結果:
1,2,3
3,2,1
選定元素slice()
slice() 方法可從已有的數組中返回選定的元素。
語法
arrayObject.slice(start,end)
參數說明:
1.返回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。
- 該方法并不會修改數組,而是返回一個子數組。
注意:
- 可使用負值從數組的尾部選取元素。
2.如果 end 未被規定,那么 slice() 方法會選取從 start 到數組結尾的所有元素。
- String.slice() 與 Array.slice() 相似。
我們將創建一個新數組,然后從其中選取的元素,代碼如下:
<script type="text/javascript">
var myarr = new Array(1,2,3,4,5,6);
document.write(myarr + "<br>");
document.write(myarr.slice(2,4) + "<br>");
document.write(myarr);
</script>
運行結果:
1,2,3,4,5,6
3,4
1,2,3,4,5,6
數組排序sort()
sort()方法使數組中的元素按照一定的順序排列。
語法:
arrayObject.sort(方法函數)
參數說明:
1.如果不指定<方法函數>,則按unicode碼順序排列。
2.如果指定<方法函數>,則按<方法函數>所指定的排序方法排序。
myArray.sort(sortMethod);
注意: 該函數要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:
若返回值<=-1,則表示 A 在排序后的序列中出現在 B 之前。
若返回值>-1 && <1,則表示 A 和 B 具有相同的排序順序。
若返回值>=1,則表示 A 在排序后的序列中出現在 B 之后。
1.使用sort()將數組進行排序,代碼如下:
<script type="text/javascript">
var myarr1 = new Array("Hello","John","love","JavaScript");
var myarr2 = new Array("80","16","50","6","100","1");
document.write(myarr1.sort()+"<br>");
document.write(myarr2.sort());
</script>
運行結果:
Hello,JavaScript,John,love
1,100,16,50,6,80
注意:上面的代碼沒有按照數值的大小對數字進行排序。
2.如要實現這一點,就必須使用一個排序函數,代碼如下:
<script type="text/javascript">
function sortNum(a,b) {
return a - b;
//升序,如降序,把“a - b”該成“b - a”
}
var myarr = new Array("80","16","50","6","100","1");
document.write(myarr + "<br>");
document.write(myarr.sort(sortNum));
</script>
運行結果:
80,16,50,6,100,1
1,6,16,50,80,100
編程練習
某班的成績出來了,現在老師要把班級的成績打印出來。
效果圖:
XXXX年XX月X日 星期X--班級總分為:81
格式要求:
1、顯示打印的日期。 格式為類似“XXXX年XX月XX日 星期X” 的當前的時間。
2、計算出該班級的平均分(保留整數)。
同學成績數據如下:
"小明:87; 小花:81; 小紅:97; 小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"
任務
第一步:可通過javascript的日期對象來得到當前的日期。
提示:使用Date()日期對象,注意星期返回值為0-6,所以要轉成文字"星期X"
第二步:一長竄的字符串不好弄,找規律后分割放到數組里更好操作哦。
第三步:分割字符串得到分數,然后求和取整。
提示:parseInt() 字符串類型轉成整型。