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 相关文章推荐
JS实现self的resend
Jul 22 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
May 19 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
Jul 30 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
Mar 06 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
jQuery实现自定义下拉列表
Jan 05 Javascript
Node.js用readline模块实现输入输出
Dec 16 Javascript
基于require.js的使用(实例讲解)
Sep 07 Javascript
Vue页面跳转动画效果的实现方法
Sep 23 Javascript
如何基于原生javaScript生成带图片的二维码
Nov 21 Javascript
vue el-table实现行内编辑功能
Dec 11 Javascript
微信小程序自定义底部弹出框动画
Nov 18 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
学习PHP的数组总结【经验】
2016/05/05 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
jQuery随机切换图片的小例子
2013/04/18 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
Python基于requests库爬取网站信息
2020/03/02 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
Python实现自动整理文件的脚本
2020/12/17 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
一些关于MySql加速和优化的面试题
2014/01/30 面试题
公司营业员的自我评价
2014/03/04 职场文书
生日礼品店创业计划书范文
2014/03/21 职场文书
导师推荐信范文
2014/05/09 职场文书
影子教师研修方案
2014/06/14 职场文书
小学语文国培研修日志
2015/11/13 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书