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


108

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


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.


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.


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;
}

fungsi ini membuat firefox mengalami crash dengan mengurai array UI yang dapat diurutkan.
Shahrokhian


8

Saya akan merekomendasikan menggunakan toString ().

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


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.


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!


1

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


1

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


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
  }
} 
*/

-5
alert($("#form_id").serialize());

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.