首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

[Array转Json]试了好使, 但是没有弄明白

2012-08-11 
[Array转Json]试了好使, 但是没弄明白原来代码入如下:JScript codefunction arrayToJson(o) { var r []

[Array转Json]试了好使, 但是没弄明白
原来代码入如下:

JScript code
function arrayToJson(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 + ":" + arrayToJson(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(arrayToJson(o[i])); } r = "[" + r.join() + "]"; } return r; } return o.toString(); }


1. if (!o.sort) 这个sort是干啥的?
2. if (!!document.all && !/^/n?function/s*toString/(/)/s*/{/n?/s*/[native code/]/n?/s*/}/n?/s*$/.test(o.toString)) 
这两个If 求解释

[解决办法]
也难为你,这段代码写的可读性确实不好。
另外那个//之间的/应该是\吧

1、判断是否是数组的,如果否 if成立
2、判断IE[一种hack] 并且o的toString方法不是原生方法的。如果确定 则if成立。

热点排行