Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengubah Tatasusunan 2D dengan Mudah dalam JavaScript?

Bagaimanakah Saya Boleh Mengubah Tatasusunan 2D dengan Mudah dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-12-17 09:09:25417semak imbas

How Can I Easily Transpose a 2D Array in JavaScript?

Memindahkan Tatasusunan 2D dengan Mudah dalam JavaScript

Memindahkan tatasusunan 2D melibatkan penukaran baris kepada lajur dan sebaliknya. Ini sering dilakukan untuk membentuk semula data untuk keperluan pemprosesan tertentu. Semasa menggunakan gelung untuk mencapai ini adalah perkara biasa, terdapat pendekatan yang lebih mudah.

Pertimbangkan tatasusunan 2D berikut:

[
    [1,2,3],
    [1,2,3],
    [1,2,3],
]

Untuk mengubahnya menjadi:

[
    [1,1,1],
    [2,2,2],
    [3,3,3],
]

Anda boleh memanfaatkan kuasa peta:

output = array[0].map((_, colIndex) => array.map(row => row[colIndex]));

Memahami peta Fungsi

peta berulang pada setiap elemen tatasusunan, menggunakan fungsi panggil balik untuk mengubah elemen. Output ialah tatasusunan baharu yang mengandungi nilai yang diubah.

Memecahkan Kod Transpos

  • tatasusunan[0] mengakses baris pertama tatasusunan input.
  • Fungsi panggil balik (_, colIndex) menerima elemen (_) dan indeks lajurnya (colIndex).
  • Di dalam panggil balik, array.map(row => row[colIndex]) berulang pada setiap baris, mengekstrak elemen pada indeks lajur yang ditentukan.
  • Hasilnya ialah tatasusunan lajur baharu nilai.

Kesimpulan

Pendekatan ringkas menggunakan peta ini menyelaraskan proses transposisi, menghapuskan keperluan untuk gelung bersarang dan memudahkan kod dengan ketara.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Tatasusunan 2D dengan Mudah dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn