二維數組的創建以及簡單舉例


一、.定義

在一維數組里面再定義多個一維數組,則是二維數組。(這個定義可能有點片面,但是二維數組的原理大致是這樣,在很多語言中,對於二維數組已經三維數組,或者說是多為數組,都是這種思想,比如c語言,c++等,只不過在不同的語言中,可能定義方式有些出入)。

eg : 

  var arr = [

    [1,2,3],

    [4,5,6],

    [7,8,9],

    [10,11,12]

  ]

二、二維數組的練習

  1. 通過循環按行順序為一個5×5的二維數組a賦1到25的自然數 試編程。

    分析:   1. 先創建一個一維數組arr
    2. 利用循環,給a數組中,push5個數組,這樣就創建了一個二維數組
          3. 之后,想辦法將1-25的自然數,放到數組中
          4. 返回數組
    function fn() {
    var arr = [];
    var count = 1;
    for(var i = 0; i< 5; i++) {
    arr.push([]);
    for(var j = 0; j < 5; j++) {
    //arr[i][j] = count++;
    arr[i].push(count++);
    }
    }
    return arr;
    }
    console.log(fn());
  2. 定義一個含有30個整型元素的數組,按順序分別賦予從2開始的偶數;然后按順序每五個數求出一個平均值,放在另一個數組中。試編程。

    分析: 1. 先定義三個數組,arr1【用來存放原數據】,arr2 【用來存放將arr1每五個分割開的數】,meanValue【用來存放平均值】.
    2. 將原數組中的數據,每五個進行分割,放入arr2中。
    3. 對arr2中的每一組數據求平均數,放入meanValue中.
    4. 返回meanValue.
    function fn() {
    var arr = [];
    var arr2 = [];
    var meanValue = [];
    for(var i = 2;i <= 60; i += 2) {
    arr.push(i);
    }
    for(var i = 0;i < 6;i++) {
    arr2.push(arr.splice(0,5));
    }

    for(var i = 0;i < arr2.length; i++) {
    var sum =0;
    for(var j = 0; j < arr2[i].length; j++) {
    sum += arr2[i][j];
    }
    meanValue.push(sum/5);
    }
    return meanValue;
    }
    console.log(fn());
  3. 通過循環按行順序為一個5×5的二維數組a賦1到25的自然數,然后輸出該數組的左下半三角的和。試編程。

    分析:1. 先給一個5*5的二維數組賦值
    2. 求下半三角元素的和。
    function fn() {
    var arr = [];
    var count = 1;
    var sum = 0;
    for(var i = 0; i < 5;i++) {
    arr.push([]);
    for(var j = 0; j< 5;j++) {
    arr[i].push(count++);
    }
    }
    for(var i = 0; i < 5; i++) {
    for(var j = 0;j <= i; j++) {
    sum += arr[i][j];
    }
    }
    return sum;
    }
    console.log(fn());
  4. 編寫函數norepeat(arr) 將數組的重復元素去掉

    分析:1. 利用選擇排序的思想,對數組中的每一個數據進行比較,如果兩個元素相同,則刪除后面的元素
    2. 在將元素刪除之后,要讓后面的元素向前移了之后,需要對當前位置的元素重新進行判斷。
    3. 返回原數組。
    var arr=[1,2,5,4,6,3,2,1,4,5,2,3,6,5,4,1,2,3,2];
    function norepeat(arr) {
    for(var i = 0; i< arr.length-1; i++) {
    for(var j = i+1;j< arr.length;j++) {
    if(arr[i] == arr[j]) {
    arr.splice(j,1);
    j--;
    }
    }
    }
    return arr;
    }
    console.log(norepeat(arr));
  5. 封裝功能“有一個從小到大排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中”

    var arr = [1, 2, 3, 4, 5, 7, 8, 9];
    function fn(arr, k) {
    var flag = true;
    for (var i = 0; i < arr.length; i++) {
    if (arr[i] >= k) {
    arr.splice(i, 0, k);
    flag = false;
    break;
    }
    }
    if (flag == true) {
    arr.push(k);
    }
    return arr;
    }
    console.log(fn(arr, 410));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM