(1)知識點
- (1.1)含義
- (1.2)創建
- (1.3)遍歷
(2)細化
(2.1)含義
之前我們用到的都是一維數組,實際項目中會用到很多** 數組的元素又引用了另一個子數組 **,這種稱之為二維數組
- (1.2)創建
何時使用:保存橫行豎列的二維數據,保存上下級關系的數據
直接定義并初始化
a. 創建一個空數組:var data=[];
b. 設置數組中每個元素再引用另一個小數組
data[0]=[0,0,0,0];定義一個未知長度的二維數組
var tArray = new Array(); //先聲明一維
for (var k = 0; k < i; k++) { //一維長度為i,i為變量,可以根據實際情況改變
tArray[k] = new Array(); //聲明二維,每一個一維數組里面的一個元素都是一個數組;
for (var j = 0; j < p; j++) { //一維數組里面每個元素數組可以包含的數量p,p也是一個變量;
tArray[k][j] = ""; //這里將變量初始化,我這邊統一初始化為空,后面再用所需的值覆蓋里面的值
}
}
- (2.3)遍歷
訪問二維數組中任意位置的元素:data[r][c]
tips:二維數組行下標r不能越界,越界就報錯
遍歷二維數組:固定套路:
外層循環遍歷行,內層循環遍歷當前行的中的列
for (var r = 0; r < data.length; r++) {
for (var c = 0; c < data[r].length; c++) {
當前元素:data[r][c]
}
}
(3)實踐
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>二維數組</title>
</head>
<body>
</body>
</html>
<script type="application/javascript">
/**
* (1)數組的元素又引用了另一個子數組
* (2)二維數組行下標r不能越界,越界就報錯
* (3)遍歷二維數組
*/
var arr = new Array();
var subArr1 = [1, 2, 3];
var subArr2 = ['a', 'b', 'c'];
arr.push(subArr1);
arr.push(subArr2);
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr[i].length; j++) {
console.log(arr[i][j]);
}
}
onsole.log("----------完美的分隔符----------");
/**
* 冒泡排序
* 數組排序
* @param arr
* @param compare
*/
function bubble(arr, compare) {
for (var r = 1; r <= arr.length - 1; r++) {
//任意一輪排序的公式
for (var i = 0; i < arr.length - r; i++) {
console.log(arr);
console.log(arr[i], arr[i + 1]);
if (compare(arr[i], arr[i + 1]) > 0) {
var temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
console.log(arr);
console.log("______________________");
}
console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
}
}
function compare(a, b) {
return parseFloat(a) - parseFloat(b);
}
var arr = ['35px', '12px', '5px', '123px'];
bubble(arr, compare);
console.log("結果:" + arr);//["5px", "12px", "35px", "123px"]
console.log("----------完美的分隔符----------");
</script>