<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 內(nèi)建對象
* 宿主對象
* 自定義對象
*
* 數(shù)組(Array)
* - 數(shù)組也是一個對象
* - 它和我們普通對象功能類似仿吞,也是用來存儲一些值的
* - 不同的是普通對象是使用字符串作為屬性名的公壤,
* 而數(shù)組時使用數(shù)字來作為索引操作元素
* - 索引:
* 從0開始的整數(shù)就是索引
* - 數(shù)組的存儲性能比普通對象要好啤握,在開發(fā)中我們經(jīng)常使用數(shù)組來存儲一些數(shù)據(jù)
*/
//創(chuàng)建數(shù)組對象
var arr = new Array();
//使用typeof檢查一個數(shù)組時顷链,會返回object
//console.log(typeof arr);
/*
* 向數(shù)組中添加元素
* 語法:數(shù)組[索引] = 值
*/
arr[0] = 10;
arr[1] = 33;
arr[2] = 22;
arr[3] = 44;
/*arr[10] = 31;
arr[100] = 90;*/
/*
* 讀取數(shù)組中的元素
* 語法:數(shù)組[索引]
* 如果讀取不存在的索引夯辖,他不會報錯而是返回undefined
*/
//console.log(arr[3]);
/*
* 獲取數(shù)組的長度
* 可以使用length屬性來獲取數(shù)組的長度(元素的個數(shù))
* 語法:數(shù)組.length
*
* 對于連續(xù)的數(shù)組笙什,使用length可以獲取到數(shù)組的長度(元素的個數(shù))
* 對于非連續(xù)的數(shù)組茵烈,使用length會獲取到數(shù)組的最大的索引+1
* 盡量不要創(chuàng)建非連續(xù)的數(shù)組
*/
/*console.log(arr.length);
console.log(arr);*/
/*
* 修改length
* 如果修改的length大于原長度绸吸,則多出部分會空出來
* 如果修改的length小于原長度涎跨,則多出的元素會被刪除
*/
//arr.length = 10;
/*arr.length = 2;
console.log(arr.length);
console.log(arr);*/
arr[4] = 50;
arr[5] = 60;
//向數(shù)組的最后一個位置添加元素
//語法:數(shù)組[數(shù)組.length] = 值;
arr[arr.length] = 70;
arr[arr.length] = 80;
arr[arr.length] = 90;
console.log(arr);
</script>
</head>
<body>
</body>
</html>
數(shù)組的高級應(yīng)用
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
//創(chuàng)建一個數(shù)組
//var arr = new Array();
//使用字面量來創(chuàng)建數(shù)組
//語法:[]
//var arr = [];
//console.log(typeof arr);
//使用字面量創(chuàng)建數(shù)組時洼冻,可以在創(chuàng)建時就指定數(shù)組中的元素
var arr = [1,2,3,4,5,10];
//console.log(arr[3]);
//使用構(gòu)造函數(shù)創(chuàng)建數(shù)組時,也可以同時添加元素隅很,將要添加的元素作文構(gòu)造函數(shù)的參數(shù)傳遞
//元素之間使用,隔開
var arr2 = new Array(10,20,30);
//console.log(arr2);
//創(chuàng)建一個數(shù)組數(shù)組中只有一個元素10
arr = [10];
//創(chuàng)建一個長度為10的數(shù)組
arr2 = new Array(10);
//console.log(arr2.length);
//數(shù)組中的元素可以是任意的數(shù)據(jù)類型
arr = ["hello",1,true,null,undefined];
//也可以是對象
var obj = {name:"孫悟空"};
arr[arr.length] = obj;
arr = [{name:"孫悟空"},{name:"沙和尚"},{name:"豬八戒"}];
//也可以是一個函數(shù)
arr = [function(){alert(1)},function(){alert(2)}];
//console.log(arr);
//arr[0]();
//數(shù)組中也可以放數(shù)組撞牢,如下這種數(shù)組我們稱為二維數(shù)組
arr = [[1,2,3],[3,4,5],[5,6,7]];
console.log(arr[1]);
</script>
</head>
<body>
</body>
</html>
常用方法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
//創(chuàng)建一個數(shù)組
var arr = ["孫悟空","豬八戒","沙和尚"];
/*
* push()
* - 該方法可以向數(shù)組的末尾添加一個或多個元素,并返回數(shù)組的新的長度
* - 可以將要添加的元素作為方法的參數(shù)傳遞叔营,
* 這樣這些元素將會自動添加到數(shù)組的末尾
* - 該方法會將數(shù)組新的長度作為返回值返回
*/
var result = arr.push("唐僧","蜘蛛精","白骨精","玉兔精");
//console.log(arr);
//console.log("result = "+result);
/*
* pop()
* - 該方法可以刪除數(shù)組的最后一個元素,并將被刪除的元素作為返回值返回
*/
result = arr.pop();
/*console.log(arr);
console.log("result = "+result);*/
/*
* unshift()
* - 向數(shù)組開頭添加一個或多個元素屋彪,并返回新的數(shù)組長度
* - 向前邊插入元素以后,其他的元素索引會依次調(diào)整
*/
//console.log(arr);
arr.unshift("牛魔王","二郎神");
console.log(arr);
/*
* shift()
* - 可以刪除數(shù)組的第一個元素绒尊,并將被刪除的元素作為返回值返回
*/
result = arr.shift();
result = arr.shift();
console.log(arr);
console.log("result = "+result);
</script>
</head>
<body>
</body>
</html>
數(shù)組的遍歷
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
//創(chuàng)建一個數(shù)組
var arr = ["孫悟空","豬八戒","沙和尚","唐僧","白骨精"];
//所謂的遍歷數(shù)組畜挥,就是將數(shù)組中所有的元素都取出來
/*console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
console.log(arr[3]);*/
for(var i=0 ; i<arr.length ; i++){
console.log(arr[i]);
}
</script>
</head>
<body>
</body>
</html>
forEach
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 一般我們都是使用for循環(huán)去遍歷數(shù)組,
* JS中還為我們提供了一個方法蟹但,用來遍歷數(shù)組
* forEach()
* - 這個方法只支持IE8以上的瀏覽器
* IE8及以下的瀏覽器均不支持該方法,所以如果需要兼容IE8华糖,則不要使用forEach
* 還是使用for循環(huán)來遍歷
*/
//創(chuàng)建一個數(shù)組
var arr = ["孫悟空","豬八戒","沙和尚","唐僧","白骨精"];
/*
* forEach()方法需要一個函數(shù)作為參數(shù)
* - 像這種函數(shù)瘟裸,由我們創(chuàng)建但是不由我們調(diào)用的,我們稱為回調(diào)函數(shù)
* - 數(shù)組中有幾個元素函數(shù)就會執(zhí)行幾次兼搏,每次執(zhí)行時,瀏覽器會將遍歷到的元素
* 以實參的形式傳遞進(jìn)來佛呻,我們可以來定義形參,來讀取這些內(nèi)容
* - 瀏覽器會在回調(diào)函數(shù)中傳遞三個參數(shù):
* 第一個參數(shù)再扭,就是當(dāng)前正在遍歷的元素
* 第二個參數(shù)夜矗,就是當(dāng)前正在遍歷的元素的索引
* 第三個參數(shù)紊撕,就是正在遍歷的數(shù)組
*
*/
arr.forEach(function(value , index , obj){
console.log(value);
});
</script>
</head>
<body>
</body>
</html>