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 Ajax学习实例7 Ajax所有过程事件分析示例
Mar 23 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
Jan 23 Javascript
JavaScript中的Array 对象(数组对象)
Jun 02 Javascript
原生Javascript和jQuery做轮播图简单例子
Oct 11 Javascript
浅谈Node.js:Buffer模块
Dec 05 Javascript
js实现九宫格拼图小游戏
Feb 13 Javascript
ES6中Array.includes()函数的用法
Sep 20 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
Jan 09 Javascript
vue系列之requireJs中引入vue-router的方法
Jul 18 Javascript
详解Angularjs 自定义指令中的数据绑定
Jul 19 Javascript
详解react native页面间传递数据的几种方式
Nov 07 Javascript
JS实现九宫格拼图游戏
Jun 28 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
数据库相关问题
2006/10/09 PHP
PHP实现图片简单上传
2006/10/09 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
jquery validate demo 基础
2015/10/29 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
Vue v-for循环之@click点击事件获取元素示例
2019/11/09 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
Python计算一个文件里字数的方法
2015/06/15 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
python opencv实现简易画图板
2020/08/27 Python
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
2014年小班元旦活动方案
2014/02/16 职场文书
人事局接收函
2015/01/30 职场文书
高中地理教学反思
2016/02/19 职场文书