Bagaimana cara melihat struktur array dalam JavaScript dengan alert ()?

108

Bagaimana cara melihat struktur array dalam JavaScript menggunakan alert()?

pppttt
sumber
14
Ini tidak menjawab pertanyaan Anda, tetapi Anda harus menginstal FireBug dan menggunakannya console.log- ini bagus untuk introspeksi objek JavaScript.
Deniz Dogan
Apa yang Anda maksud dengan struktur array? Anda dapat mengulang melalui larik dan memberi tahu setiap nilai.
Tim Schmelter
@ Deniz Dogan oleh console.log maksud Anda shift + R dan opsi "konsol"?
pppttt
1
@ Deniz - console.debugakan bekerja lebih baik.
Matt Ball
@ Tim menurut struktur yang saya maksud indeks dan nilainya, tampilan "mentah" dari array seperti di PHP printf
pppttt

Jawaban:

122

Pendekatan yang paling mendasar adalah alert(arrayObj.join('\n')), yang akan menampilkan setiap elemen array dalam satu baris.

Humberto
sumber
5
Ini bekerja dengan baik. Ganti "arrayObj" dengan nama array Anda. Jadi jika array Anda bernama myArray, ini adalah baris kode Anda:alert(myArray.join('\n'));
Tony Brasunas
54

EDIT: Firefox dan Google Chrome sekarang memiliki JSONobjek bawaan, jadi Anda bisa mengatakannya alert(JSON.stringify(myArray))tanpa perlu menggunakan plugin jQuery. Ini bukan bagian dari spesifikasi bahasa Javascript, jadi Anda tidak boleh bergantung pada JSONobjek yang ada di semua browser, tetapi untuk tujuan debugging, ini sangat berguna.

Saya cenderung menggunakan plugin jQuery-json sebagai berikut:

alert( $.toJSON(myArray) );

Ini mencetak array dalam format seperti

[5, 6, 7, 11]

Namun, untuk men-debug kode Javascript Anda, saya sangat merekomendasikan Firebug. Ini sebenarnya dilengkapi dengan konsol Javascript, sehingga Anda dapat mengetikkan kode Javascript untuk halaman manapun dan melihat hasilnya. Hal-hal seperti array sudah dicetak dalam bentuk yang dapat dibaca manusia yang digunakan di atas.

Firebug juga memiliki debugger, serta layar untuk membantu Anda melihat dan men-debug HTML dan CSS Anda.

Eli Courtwright
sumber
32

lewati array js Anda ke fungsi di bawah ini dan itu akan melakukan hal yang sama seperti fungsi php print_r ()

 alert(print_r(your array));  //call it like this

function print_r(arr,level) {
var dumped_text = "";
if(!level) level = 0;

//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += "    ";

if(typeof(arr) == 'object') { //Array/Hashes/Objects 
    for(var item in arr) {
        var value = arr[item];

        if(typeof(value) == 'object') { //If it is an array,
            dumped_text += level_padding + "'" + item + "' ...\n";
            dumped_text += print_r(value,level+1);
        } else {
            dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
        }
    }
} else { //Stings/Chars/Numbers etc.
    dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
}
Fawad Ghafoor
sumber
fungsi ini membuat firefox mengalami crash dengan mengurai array UI yang dapat diurutkan.
Shahrokhian
16

Kamu bisa memakai alert(arrayObj.toSource());

Piseth Sok
sumber
1
Berfungsi di bawah Firefox, tetapi tidak di Safari atau MSIE, lihat stackoverflow.com/questions/1101584/…
Julien Kronegg
8

Saya akan merekomendasikan menggunakan toString ().

Ex. alert(array.toString()), atauconsole.log(array.toString())

dk123
sumber
3

Jika ini untuk tujuan debugging, saya sarankan Anda menggunakan debugger JavaScript seperti Firebug . Ini akan memungkinkan Anda melihat seluruh konten array dan banyak lagi, termasuk memodifikasi entri array dan menelusuri kode.

Justin Ethier
sumber
2

Jika yang Anda inginkan adalah menampilkan dengan alert () isi dari sebuah array objek, saya merekomendasikan Anda untuk mendefinisikan di objek metode toString () jadi dengan sebuah alert sederhana (MyArray); konten lengkap dari array akan ditampilkan dalam peringatan.

Berikut ini contohnya:

//-------------------------------------------------------------------
// Defininf the Point object
function Point(CoordenadaX, CoordenadaY) {
    // Sets the point coordinates depending on the parameters defined
    switch (arguments.length) {
        case 0:
            this.x = null;
            this.y = null;
            break;
        case 1:
            this.x = CoordenadaX;
            this.y = null;
            break;
        case 2:
            this.x = CoordenadaX;
            this.y = CoordenadaY;
            break;
    }
    // This adds the toString Method to the point object so the 
    // point can be printed using alert();
    this.toString = function() {
        return " (" + this.x + "," + this.y + ") ";
    };
 }

Kemudian jika Anda memiliki array poin:

var MyArray = [];
MyArray.push ( new Point(5,6) );
MyArray.push ( new Point(7,9) );

Anda dapat mencetak hanya dengan menelepon:

alert(MyArray);

Semoga ini membantu!

tomasofen.dll
sumber
1

Anda dapat menulis fungsi yang akan mengubah dan memformat array ini sebagai string. Bahkan lebih baik: gunakan FireBug untuk debugging daripada peringatan.

Darin Dimitrov
sumber
1

Lebih baik gunakan Firebug (konsol chrome dll) dan gunakan console.dir ()

yAnTar
sumber
1

Untuk tujuan keterbacaan, Anda dapat menggunakan:

alert(JSON.stringify(someArrayOrObj, '', 2));

Selengkapnya tentang JSON.stringify () .

Contoh:

let user = {
  name: "John",
  age: 30,
  roles: {
    isAdmin: false,
    isEditor: true
  }
};

alert(JSON.stringify(user, "", 2));
/* Result:
{
  "name": "John",
  "age": 30,
  "roles": {
    "isAdmin": false,
    "isEditor": true
  }
} 
*/
Victor S.
sumber
-5
alert($("#form_id").serialize());
Mauricio
sumber
3
Pertanyaannya diberi tag javascriptyang mengatakan "Kecuali jika tag untuk kerangka kerja / pustaka juga disertakan, jawaban JavaScript murni diharapkan". Bahkan jika bukan itu masalahnya ... pertanyaannya adalah menanyakan tentang array, bukan bentuk HTML.
Quentin