热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

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

function print_r(theObj) {
    var retStr = '';
    if (typeof theObj == 'object') {
        retStr += '
';
        for (var p in theObj) {
            if (typeof theObj[p] == 'object') {
                retStr += '
['+p+'] => ' + typeof(theObj) + '
';
                retStr += '
' + print_r(theObj[p]) + '
';
            } else {
                retStr += '
['+p+'] => ' + theObj[p] + '
';
            }
        }
        retStr += '
';
    }
    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 += '
';
  for (var p in theObj) {
   if (typeof theObj[p] == 'object' || typeof theObj[p] == 'array') {
    retStr += '
['+p+'] => ' + typeof(theObj) + '
';
    retStr += '
' + XFUPLOAD.Tools.print_r(theObj[p]) + '
';
   } else {
    retStr += '
['+p+'] => ' + theObj[p] + '
';
   }
  }
  retStr += '
';
 }
 $("body").append(retStr);
}

推荐阅读
author-avatar
蜗牛的家
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有