(1)知識點(diǎn)
- (1.1)含義
- (1.2)創(chuàng)建
- (1.3)遍歷
(2)細(xì)化
(2.1)含義
之前我們用到的都是一維數(shù)組喘鸟,實(shí)際項(xiàng)目中會(huì)用到很多** 數(shù)組的元素又引用了另一個(gè)子數(shù)組 **标锄,這種稱之為二維數(shù)組
- (1.2)創(chuàng)建
何時(shí)使用:保存橫行豎列的二維數(shù)據(jù)柄慰,保存上下級關(guān)系的數(shù)據(jù)
直接定義并初始化
a. 創(chuàng)建一個(gè)空數(shù)組:var data=[];
b. 設(shè)置數(shù)組中每個(gè)元素再引用另一個(gè)小數(shù)組
data[0]=[0,0,0,0];定義一個(gè)未知長度的二維數(shù)組
var tArray = new Array(); //先聲明一維
for (var k = 0; k < i; k++) { //一維長度為i,i為變量趟薄,可以根據(jù)實(shí)際情況改變
tArray[k] = new Array(); //聲明二維贱枣,每一個(gè)一維數(shù)組里面的一個(gè)元素都是一個(gè)數(shù)組;
for (var j = 0; j < p; j++) { //一維數(shù)組里面每個(gè)元素?cái)?shù)組可以包含的數(shù)量p日麸,p也是一個(gè)變量寄啼;
tArray[k][j] = ""; //這里將變量初始化,我這邊統(tǒng)一初始化為空代箭,后面再用所需的值覆蓋里面的值
}
}
- (2.3)遍歷
訪問二維數(shù)組中任意位置的元素:data[r][c]
tips:二維數(shù)組行下標(biāo)r不能越界墩划,越界就報(bào)錯(cuò)
遍歷二維數(shù)組:固定套路:
外層循環(huán)遍歷行,內(nèi)層循環(huán)遍歷當(dāng)前行的中的列
for (var r = 0; r < data.length; r++) {
for (var c = 0; c < data[r].length; c++) {
當(dāng)前元素:data[r][c]
}
}
(3)實(shí)踐
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>二維數(shù)組</title>
</head>
<body>
</body>
</html>
<script type="application/javascript">
/**
* (1)數(shù)組的元素又引用了另一個(gè)子數(shù)組
* (2)二維數(shù)組行下標(biāo)r不能越界嗡综,越界就報(bào)錯(cuò)
* (3)遍歷二維數(shù)組
*/
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("----------完美的分隔符----------");
/**
* 冒泡排序
* 數(shù)組排序
* @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("結(jié)果:" + arr);//["5px", "12px", "35px", "123px"]
console.log("----------完美的分隔符----------");
</script>