如何使用alert()在JavaScript中查看数组结构?

如何使用alert()在JavaScript中查看数组的结构?

alert(arrayObj.join('\n'))是一个非常基本的方法,它将在一行中显示每个数组元素。

编辑: Firefox和谷歌浏览器现在有一个内置的JSON对象,所以你可以只说alert(JSON.stringify(myArray))而不需要使用jQuery插件。 这不是Javascript语言规范的一部分,所以你不应该依赖所有浏览器中存在的JSON对象,但是为了debugging的目的,它是非常有用的。

我倾向于使用jQuery-json插件 ,如下所示:

 alert( $.toJSON(myArray) ); 

这将以类似的格式打印数组

 [5, 6, 7, 11] 

但是,为了debugging你的Javascript代码,我强烈build议Firebug它实际上带有一个Javascript控制台,所以你可以input任何页面的Javascript代码并查看结果。 像数组这样的东西已经以上面使用的可读forms打印了。

Firebug还有一个debugging器,以及帮助您查看和debuggingHTML和CSS的屏幕。

将你的js数组传递给下面的函数,它将和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; } 

你可以使用alert(arrayObj.toSource());

我build议使用toString()。

防爆。 alert(array.toString())console.log(array.toString())

如果这是出于debugging目的,我build议你使用一个JavaScriptdebugging器,如Firebug 。 它可以让你查看数组的全部内容,包括修改数组条目和单步执行代码。

如果你想要显示一个alert()对象数组的内容,我build议你在对象中定义方法toString(),所以用一个简单的警报(MyArray); 数组的全部内容将显示在警报中。

这里是一个例子:

 //------------------------------------------------------------------- // 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 + ") "; }; } 

那么如果你有一个点的数组:

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

您可以打印简单的电话:

 alert(MyArray); 

希望这可以帮助!

你可以写一个函数来转换和格式化这个数组作为string。 甚至更好:使用FireBug进行debugging,而不是警报。

更好地使用Firebug(镀铬控制台等)并使用console.dir()

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