Pertanyaan Bagaimana saya bisa membuat array dua dimensi di JavaScript?


Saya telah membaca online dan beberapa tempat mengatakan itu tidak mungkin, beberapa mengatakan itu dan kemudian memberi contoh dan yang lain menyanggah contoh, dll.

  1. Bagaimana cara mendeklarasikan array 2 dimensi dalam JavaScript? (dengan asumsi itu mungkin)

  2. Bagaimana saya mengakses anggotanya? (myArray[0][1] atau myArray[0,1]?)


918
2018-06-08 18:24


asal


Jawaban:


var items = [
  [1, 2],
  [3, 4],
  [5, 6]
];
console.log(items[0][0]); // 1
console.log(items);


1062
2018-06-08 18:27



Anda cukup membuat setiap item dalam larik array.

var x = new Array(10);
for (var i = 0; i < 10; i++) {
  x[i] = new Array(20);
}
x[5][12] = 3.0;

374
2018-06-08 18:28



Mirip dengan jawaban activa, inilah fungsi untuk membuat array n-dimensi:

function createArray(length) {
    var arr = new Array(length || 0),
        i = length;

    if (arguments.length > 1) {
        var args = Array.prototype.slice.call(arguments, 1);
        while(i--) arr[length-1 - i] = createArray.apply(this, args);
    }

    return arr;
}

createArray();     // [] or new Array()

createArray(2);    // new Array(2)

createArray(3, 2); // [new Array(2),
                   //  new Array(2),
                   //  new Array(2)]

163
2018-06-08 20:49



Javascript hanya memiliki larik 1 dimensi, tetapi Anda dapat membuat larik array, seperti yang ditunjukkan orang lain.

Fungsi berikut dapat digunakan untuk membuat array dimensi 2-d yang tetap:

function Create2DArray(rows) {
  var arr = [];

  for (var i=0;i<rows;i++) {
     arr[i] = [];
  }

  return arr;
}

Jumlah kolom tidak terlalu penting, karena tidak diperlukan untuk menentukan ukuran array sebelum menggunakannya.

Maka Anda cukup memanggil:

var arr = Create2DArray(100);

arr[50][2] = 5;
arr[70][5] = 7454;
// ...

65
2018-06-08 18:32



Cara termudah:

var myArray = [[]];

59
2018-01-22 18:47



Alasan beberapa orang mengatakan bahwa itu tidak mungkin karena array dua dimensi sebenarnya hanya array array. Komentar lain di sini menyediakan metode yang sangat valid untuk membuat dua larik dimensi dalam JavaScript, tetapi sudut pandang paling murni adalah Anda memiliki larik objek berdimensi satu, masing-masing objek tersebut akan menjadi larik satu dimensi yang terdiri dari dua elemen.

Jadi, itulah penyebab dari sudut pandang yang saling bertentangan.


41
2018-06-08 18:33



Hanya sedikit orang yang menunjukkan penggunaan push:
Untuk menghadirkan sesuatu yang baru, saya akan menunjukkan kepada Anda cara menginisialisasi matriks dengan beberapa nilai, misalnya: 0 atau string kosong "".
Mengingatkan bahwa jika Anda memiliki 10 elemen array, dalam javascript indeks terakhir akan menjadi 9!

function matrix( rows, cols, defaultValue){

  var arr = [];

  // Creates all lines:
  for(var i=0; i < rows; i++){

      // Creates an empty line
      arr.push([]);

      // Adds cols to the empty line:
      arr[i].push( new Array(cols));

      for(var j=0; j < cols; j++){
        // Initializes:
        arr[i][j] = defaultValue;
      }
  }

return arr;
}

contoh penggunaan:

x = matrix( 2 , 3,''); // 2 lines, 3 cols filled with empty string
y = matrix( 10, 5, 0);// 10 lines, 5 cols filled with 0

25
2017-08-08 02:22