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 相关文章推荐
jquery jqPlot API 中文使用教程(非常强大的图表工具)
Aug 15 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
Jan 11 Javascript
引用其它js时如何同时处理多个window.onload事件
Sep 02 Javascript
jQuery中prependTo()方法用法实例
Jan 08 Javascript
JavaScript中扩展Array contains方法实例
Aug 23 Javascript
javascript正则表达式总结
Feb 29 Javascript
js拖拽的原型声明和用法总结
Apr 04 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
Jun 09 Javascript
node.js缺少mysql模块运行报错的解决方法
Nov 13 Javascript
vue双向绑定的简单实现
Dec 22 Javascript
javascript设计模式之模块模式学习笔记
Feb 15 Javascript
vue-cli3搭建项目的详细步骤
Dec 05 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/12/24 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
JS获取时间的方法
2015/01/21 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
Vue.use源码分析
2017/04/22 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
Python functools模块学习总结
2015/05/09 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
详解python中sort排序使用
2019/03/23 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
Java语言的优势
2015/01/10 面试题
产品工艺师的岗位职责
2013/11/15 职场文书
大专毕业生自我鉴定
2013/11/21 职场文书
自主实习接收函
2014/01/13 职场文书
个人租房协议书范本
2014/09/30 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
学习普通话的体会
2014/11/07 职场文书
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android