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生成asp.net服务器控件的代码
Feb 04 Javascript
JS实现网页上随滚动条滚动的层效果代码
Nov 04 Javascript
浅析jQuery Mobile的初始化事件
Dec 03 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
Oct 18 Javascript
webpack中的热刷新与热加载的区别
Apr 09 Javascript
React注册倒计时功能的实现
Sep 06 Javascript
Nuxt升级2.0.0时出现的问题(小结)
Oct 08 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 Javascript
react国际化化插件react-i18n-auto使用详解
Mar 31 Javascript
解决Vue大括号字符换行踩的坑
Nov 09 Javascript
elementui的el-popover修改样式不生效的解决
Jun 30 Javascript
关于Vue中的options选项
Mar 22 Vue.js
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将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
js 事件小结 表格区别
2007/08/13 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
layerUI下的绑定事件实例代码
2018/08/17 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
python使用Berkeley DB数据库实例
2014/09/26 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
Python闭包函数定义与用法分析
2018/07/20 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
django框架ModelForm组件用法详解
2019/12/11 Python
python获取引用对象的个数方式
2019/12/20 Python
学校消防安全制度
2014/01/30 职场文书
《守株待兔》教学反思
2014/03/01 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
节电标语大全
2014/06/23 职场文书
领导工作表现评语
2015/01/04 职场文书
实习感想范文
2015/08/10 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
oracle重置序列从0开始递增1
2022/02/28 Oracle