JavaScrip实现PHP print_r的数功能(三种方法)


Posted in Javascript onNovember 12, 2013

方法一

function print_r(theObj) {
    var retStr = '';
    if (typeof theObj == 'object') {
        retStr += '<div style="font-family:Tahoma; font-size:7pt;">';
        for (var p in theObj) {
            if (typeof theObj[p] == 'object') {
                retStr += '<div><b>['+p+'] => ' + typeof(theObj) + '</b></div>';
                retStr += '<div style="padding-left:25px;">' + print_r(theObj[p]) + '</div>';
            } else {
                retStr += '<div>['+p+'] => <b>' + theObj[p] + '</b></div>';
            }
        }
        retStr += '</div>';
    }
    return retStr;
}

方法二
$(document).ready(function(){
 $('#btn').click(function(){
   var jsonStr = $('#jsonData').val();
   var json = eval('('+jsonStr+')');
   (function(){
  var print_r = function(o, depth) {
    var result = '';
    depth || (depth=1);
    var indent = new Array(4*depth+1).join(' ');
    var indentNext = new Array(4*(depth+1)+1).join(' ');
    var indentNextTwo = new Array(4*(depth+2)+1).join(' ');
    var tmp = '';
    var type = typeof o;
    switch(type) {
   case 'string':
   case 'number':
   case 'boolean':
   case 'undefined':
   case 'function':
     tmp += indent + indentNext + o + "\n";
     break;
   case 'object':
   default:
     for(var key in o) {
    tmp += indentNextTwo + '[' + key + '] = ';
    tmp += print_r(o[key], (depth+1));
     }
    }
    result += type + "\n";
    result += indentNext + '(' + "\n";
    result += tmp;
    result += indentNext + ')' + "\n";
    return result;
  };
  alert(print_r(json));
   }(json));
 });
});

方法三
print_r:function(theObj) {
 var retStr = '';
 if (typeof theObj == 'object'||typeof theObj == 'array') {
  retStr += '<div style="font-family:Tahoma; font-size:7pt;">';
  for (var p in theObj) {
   if (typeof theObj[p] == 'object' || typeof theObj[p] == 'array') {
    retStr += '<div><b>['+p+'] => ' + typeof(theObj) + '</b></div>';
    retStr += '<div style="padding-left:25px;">' + XFUPLOAD.Tools.print_r(theObj[p]) + '</div>';
   } else {
    retStr += '<div>['+p+'] => <b>' + theObj[p] + '</b></div>';
   }
  }
  retStr += '</div>';
 }
 $("body").append(retStr);
}
Javascript 相关文章推荐
javascript中的startWith和endWith的几种实现方法
May 07 Javascript
利用javascript判断文件是否存在
Dec 31 Javascript
jQuery中的$.ajax()方法应用
May 06 Javascript
谷歌地图打不开的解决办法
Aug 07 Javascript
实例分析javascript中的call()和apply()方法
Nov 28 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
Apr 15 Javascript
浅谈js中字符和数组一些基本算法题
Aug 15 Javascript
jQuery基本选择器和层次选择器学习使用
Feb 27 Javascript
vue如何从接口请求数据
Jun 22 Javascript
jQuery实现html双向绑定功能示例
Oct 09 jQuery
三种Webpack打包方式(小结)
Sep 19 Javascript
node创建Vue项目步骤详解
Mar 06 Javascript
JavaScript中的字符串操作详解
Nov 12 #Javascript
JavaScript简单实现网页回到顶部功能
Nov 12 #Javascript
判定是否原生方法的JS代码
Nov 12 #Javascript
给文字加上着重号的JS代码
Nov 12 #Javascript
深入理解javascript动态插入技术
Nov 12 #Javascript
在ASP.NET中使用JavaScript脚本的方法
Nov 12 #Javascript
JS常用正则表达式总结
Nov 12 #Javascript
You might like
php递归遍历多维数组的方法
2015/04/18 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python中针对函数处理的特殊方法
2014/03/06 Python
Python算法之栈(stack)的实现
2014/08/18 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
Python字符串的常见操作实例小结
2019/04/08 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
python超时重新请求解决方案
2019/10/21 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
Python super()函数使用及多重继承
2020/05/06 Python
python的help函数如何使用
2020/06/11 Python
Python-split()函数实例用法讲解
2020/12/18 Python
Python 实现一个简单的web服务器
2021/01/03 Python
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
研修第一天随笔感言
2014/02/15 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
干部作风建设心得体会
2014/10/22 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技