review javascript 16:二維數組

(1)知識點

  • (1.1)含義
  • (1.2)創建
  • (1.3)遍歷

(2)細化

(2.1)含義

之前我們用到的都是一維數組,實際項目中會用到很多** 數組的元素又引用了另一個子數組 **,這種稱之為二維數組

  • (1.2)創建
    何時使用:保存橫行豎列的二維數據,保存上下級關系的數據
  1. 直接定義并初始化
    a. 創建一個空數組:var data=[];
    b. 設置數組中每個元素再引用另一個小數組
    data[0]=[0,0,0,0];

  2. 定義一個未知長度的二維數組

    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>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 3,864評論 0 6
  • 數組在程序設計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數據元素的集合稱...
    朱森閱讀 4,007評論 2 13
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,767評論 18 399
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,774評論 0 33
  • “你的水平=你花最多時間相處的五個朋友的總體水平÷5” 這句話是我曾經參加的一個女性健康沙龍聽說的,當時邀請的是國...
    摩可沙閱讀 420評論 0 0