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

  方法一

  

复制代码 代码如下:

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

  }