首页 > 代码库 > 用JavaScript写一个类似PHP print_r的函数

用JavaScript写一个类似PHP print_r的函数

PHP print_r的函数很好用,可以用来打印数组、对象等的结构与数据,可惜JavaScript并没有原生提供类似的函数。不过我们可以试着自己来实现这个函数,下面提供一些方法与思路。

方法一永盈会娱乐城

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写一个类似PHP print_r的函数