JQuery快速转储对象的成员

时间:2012-06-13 21:05:35

标签: javascript jquery

我想知道是否有一种快速获取对象变量值的方法,类似于php的var_dump()方法。

所以,如果我有一个对象

var myObject = {
    Up: 38,
    Dn: 40,
    Lf: 37,
    Rt: 39,
    Enter: 13,
    Space: 32,
    Esc: 27
};

我会回来的字符串看起来像

[ Up:38, Dn:40, Lf:37, Rt:39, Enter:13, Space:32, Esc:27 ]

假设我需要在不能使用firebug的计算机上执行此操作。有没有办法在不迭代对象中的所有参数的情况下执行此操作?有没有一个像这样的独立库?

5 个答案:

答案 0 :(得分:6)

作为一个快速的衬垫,我经常使用

   var o = {a:1, b:2}, k, s = []; for (k in o) o.hasOwnProperty(k) && s.push (o[k]); s = s.join (', ');

你只需要改变一个对象的出现(o的值),结果是s。

这不会递归到数据结构中。如果需要,JSON.stringify可能更适合。但请注意,JSON.stringify不执行功能,只是跳过它们!

对于格式化字符串使用

JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}}, null, 4); // Indented 4 spaces

根据Javascript: How to generate formatted easy-to-read JSON straight from an object?的回答

答案 1 :(得分:5)

使用默认开发。 IE,Chrome和Firefox上的工具

console.dir(myObject); 

如果你真的不能使用这些工具,那么JSON.stringify(myObject)可能有帮助。

答案 2 :(得分:2)

你试过FirebugLite吗?它有很多Firebug功能。

这是Javascript Firebug库,您只需要加载脚本

<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>

您将在所有主流浏览器中获得Firebug控制台,包括Internet Explorer

答案 3 :(得分:1)

JSON.stringify 是可行的方法,但它适用于所有浏览器,只需包含lib:

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

示例:

        text = JSON.stringify(['e', {pluribus: 'unum'}]);
        // text is '["e",{"pluribus":"unum"}]'


        text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
        // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'

        text = JSON.stringify([new Date()], function (key, value) {
            return this[key] instanceof Date ?
                'Date(' + this[key] + ')' : value;
        });
        // text is '["Date(---current time---)"]'

答案 4 :(得分:0)

function var_dump(obj) {
    var obj_members = "";
    var sep = "";
    for (var key in obj) {
        obj_members += sep + key + ":" + obj[key];
        sep = ", ";
    }
    return ("[" + obj_members + "]");
}