js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一打印出来,具体代码如下:
1
2
3
4
5
6
7
8
|
function
writeObj(obj){
var
description =
""
;
for
(
var
i
in
obj){
var
property=obj[i];
description+=i+
" = "
+property+
"\n"
;
}
alert(description);
}
|
另外当你需要将object对象转换为string字符串。
有下面这个函数就好了,可以将其转化为字符串类型,然后就可以打印出来了,具体代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
function
obj2string(o){
var
r=[];
if
(
typeof
o==
"string"
){
return
"\""
+o.replace(/([\'\
"\\])/g,"
\\$1
").replace(/(\n)/g,"
\\n
").replace(/(\r)/g,"
\\r
").replace(/(\t)/g,"
\\t
")+"
\
""
;
}
if
(
typeof
o==
"object"
){
if
(!o.sort){
for
(
var
i
in
o){
r.push(i+
":"
+obj2string(o[i]));
}
if
(!!document.all&&!/^\n?
function
\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)){
r.push(
"toString:"
+o.toString.toString());
}
r=
"{"
+r.join()+
"}"
;
}
else
{
for
(
var
i=0;i<o.length;i++){
r.push(obj2string(o[i]))
}
r=
"["
+r.join()+
"]"
;
}
return
r;
}
return
o.toString();
}
|