• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Javascript实现类似PHP的print_r函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在网上搜了一下,有几种实现思路,还算实用。此文记录备用。

1. muyu的方案

 $(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));
    });
  });

2. 36ria的方案

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;
}

3. 其他方法

        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);
        }

使用时需要根据场景略作修改。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
使用正则实现php的trim函数,支持全角空格发布时间:2022-07-10
下一篇:
PHP环境搭建(win7+php5.6+apache或nginx)发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap