JavaScript-javascript 如何打印多维数组及json数据对象

WordPress 开发 WordPress 开发 主题:1098 回复:2322

JavaScript-javascript 如何打印多维数组及json数据对象

晚风撩人 发布于 2017-06-27 字数 279 浏览 1108 回复 4

谁给写个类似php的print_r()或var_dump()的功能javascript函数,用来打印javascript下的多维数组、数组对象及json对象
比如我用个二维数组,javascript如何打印这个数组呢?

var arr = [{x:"c", y:8}, {x:"a", y:20}, {x:"b", y:9}];

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(4

泛泛之交 2017-10-27 4 楼

firebug 和 chrome 的控制台可以直接看这个呢,为什么需要额外的函数?

js 写的 print_r

js 写的var_dump

泛泛之交 2017-09-18 3 楼

在网上看到了一个。http://www.nowamagic.net/librarys/veda/detail/1949

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;
}
var arr = [{x:"c", y:8}, {x:"a", y:20}, {x:"b", y:9}];
document.write(print_r(arr));

夜无邪 2017-07-17 2 楼

这是网上别人实现的一个例子,虽然感觉不是特别好,但是调试后感觉还过得去,能够达到效果。

 function var_dump(data, addwhitespace, safety, level){
var rtrn = '';
var dt, it, spaces = '';
if(addwhitespace == undefined){
addwhitespace = 'html';
}

if (!level) {
    level = 1;
}

for (var i=0; i&lt;level; i++) {
    spaces += '   ';
} //end for i&lt;level

if (typeof(data) != 'object') {
    dt = data;

    if (typeof(data) == 'string') {
        if (addwhitespace == 'html') {
            dt = dt.replace(/&amp;/g,'&amp;amp;');
            dt = dt.replace(/&gt;/g,'&amp;gt;');
            dt = dt.replace(/&lt;/g,'&amp;lt;');
        } //end if addwhitespace == html
        dt = dt.replace(/"/g,'"');
        dt = '"' + dt + '"';
    } //end if typeof == string

    if (typeof(data) == 'function' &amp;&amp; addwhitespace) {
        dt = new String(dt).replace(/n/g,"n"+spaces);
        if (addwhitespace == 'html') {
            dt = dt.replace(/&amp;/g,'&amp;amp;');
            dt = dt.replace(/&gt;/g,'&amp;gt;');
            dt = dt.replace(/&lt;/g,'&amp;lt;');
        } //end if addwhitespace == html
    } //end if typeof == function

    if (typeof(data) == 'undefined') {
        dt = 'undefined';
    } //end if typeof == undefined

    if (addwhitespace == 'html') {
        if (typeof(dt) != 'string') {
            dt = new String(dt);
        } //end typeof != string
        dt = dt.replace(/ /g,"&amp;nbsp;").replace(/n/g,"&lt;br&gt;");
    } //end if addwhitespace == html
    return dt;
} //end if typeof != object &amp;&amp; != array

for (var x in data) {
    if (safety &amp;&amp; (level &gt; safety)) {
        dt = '*RECURSION*';
    } else {
        try {
            dt = var_dump(data[x],addwhitespace,safety,level+1);
        } catch (e) {
            continue;
        }
    } //end if-else level &gt; safety
    it = var_dump(x,addwhitespace,safety,level+1);
    rtrn += it + ':' + dt + ',';
    if (addwhitespace) {
        rtrn += 'n'+spaces;
    }
}

if (addwhitespace) {
    rtrn = '{n' + spaces + rtrn.substr(0,rtrn.length-(2+(level*3))) + 'n' + spaces.substr(0,spaces.length-3) + '}';
} else {
    rtrn = '{' + rtrn.substr(0,rtrn.length-1) + '}';
}

if (addwhitespace == 'html') {
    rtrn = rtrn.replace(/ /g,"&amp;nbsp;").replace(/n/g,"&lt;br&gt;");
}

return rtrn;

}

var arr = [{x:"c", y:8}, {x:"a", y:20}, {x:"b", y:9}];

document.write(var_dump(arr));

夜无邪 2017-07-02 1 楼

json转数组JSON.stringify(“json对象”);