如何使用JavaScript查看数组的结构alert()?
console.debug实际上会更好。
如何使用JavaScript查看数组的结构alert()?
console.debug实际上会更好。
Answers:
一个非常基本的方法是alert(arrayObj.join('\n')),它将在一行中显示每个数组元素。
alert(myArray.join('\n'));
编辑: Firefox和Google Chrome现在有一个内置JSON对象,因此您可以说alert(JSON.stringify(myArray))不需要使用jQuery插件。这不是Java语言规范的一部分,因此您不应该依赖JSON所有浏览器中都存在的对象,但是出于调试目的,它非常有用。
我倾向于使用jQuery-json插件,如下所示:
alert( $.toJSON(myArray) );
这将以如下格式打印数组
[5, 6, 7, 11]
但是,为调试Javascript代码,我强烈建议Firebug 它实际上是Javascript控制台附带的,因此您可以在任何页面上键入Javascript代码并查看结果。像数组之类的东西已经以上面使用的可读格式打印。
Firebug还具有调试器以及用于帮助您查看和调试HTML和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());
如果您要使用alert()显示对象数组的内容,我建议您在对象中定义toString()方法,从而使用简单的alert(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);
希望这可以帮助!
您可以编写一个函数来将该数组转换并格式化为字符串。更好的是:使用FireBug进行调试,而不是使用警报。
出于可读性目的,您可以使用:
alert(JSON.stringify(someArrayOrObj, '', 2));
有关JSON.stringify()的更多信息。
例:
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
}
}
*/
console.log它-这对于自省JavaScript对象非常有用。