JavaScrip实现PHP print_r的数功能(三种方法)

(编辑:jimmy 日期: 2024/10/10 浏览:2)

方法一
复制代码 代码如下:
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);
}

一句话新闻

高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。