1.數(shù)組簡介
數(shù)組的結(jié)構(gòu):
中括號[]包起來
每一個元素 都以 , 隔開
每一個元素 都對應(yīng)一個索引值
數(shù)組的索引值 從 0 開始 依次 按順序遞增
數(shù)組的應(yīng)用場景:
儲存一組數(shù)據(jù)
數(shù)組 其實是一個特殊的 對象
使用 typeof 打印數(shù)據(jù)類型時 顯示 object;
數(shù)組的概念:
連續(xù)且有序 可以儲存 多個值 的數(shù)據(jù)結(jié)構(gòu)
<script>
// 使用 type of 打印數(shù)據(jù)類型
console.log(typeof arr);
// 數(shù)組的聲明方式
// 1.字面量形式
var arr1 = [];
// 2.構(gòu)造函數(shù)式聲明
var array2 = new Array();
// 數(shù)組的屬性 length
// 數(shù)組的長度 length 屬性 是一個 只讀的屬性
// 表示 數(shù)組中 存在 元素的數(shù)量
var x = arr.length;
console.log(l);
console.log(typeof x);
// 數(shù)組中 可以存儲任意數(shù)據(jù)類型的值
var arr3 = [1,'a',true,undefined,null,[],{}];
console.log(arr3);
</script>
2.索引值
數(shù)組的索引值從0開始第一個元素
var arr = ["a","b","c","d","e"];
// 依次對應(yīng)索引值 0 1 2 3 4
// 通過索引值,取數(shù)組中的元素
console.log(arr[2]);
// 使用 for 循環(huán) 打印數(shù)組中的所有元素
for(i=0;i<arr.length;i++){
console.log(arr[i]);
}
3.拷貝
用變量給變量賦值 我們通常稱之為拷貝
例如:
var a = 1;
var b =a;
a='2';
console.log(a,b);
<script>
淺拷貝
/*
當(dāng)數(shù)據(jù)類型為 array object
在進(jìn)行拷貝時 不會 開辟新的存儲空間
而是 兩個變量 公用一個空間
所以 任意一個變量發(fā)生改變 兩個變量的值 都會變
這種拷貝叫 淺拷貝
*/
var arr=[1,2,3];
var arr1 = arr;
arr1[0]=4;
console.log(arr,arr1);
實現(xiàn)數(shù)組的深拷貝
/*
深拷貝
基礎(chǔ)數(shù)據(jù)類型 number string boolean null undefined
在進(jìn)行 拷貝的時候 相當(dāng)于是 重新開辟了一個新的儲存空間
新舊 兩個 儲存空間 互不影響
這種拷貝 叫 深拷貝
*/
var arr2 = [];
for(var i = 0;i<arr.length;i++){
arr2[i]=arr[i];
}
arr2[1]=55;
console.log(arr,arr2);
</script>
4.二維數(shù)組
其實就是 將數(shù)組 當(dāng)做元素 存在另一個數(shù)組中
<script>
var book = [["三國演義","西游記"], ["小明與小紅","總裁的愛妻"],
["爸爸","媽媽"],["粒粒","肝肝"]];
//控制臺輸出某一個數(shù)組的第2個數(shù)組的第一個元素
console.log(book[1][0]);
//輸出所有數(shù)組
for(var i=0;i<book.length;i++){
for(var j=0;j<book[i].length;j++){
console.log(book[i][j]);
}
}
</script>