Javascript JQuery快速转储对象';s成员

Javascript JQuery快速转储对象';s成员,javascript,jquery,Javascript,Jquery,我想知道是否有一种快速获取对象所有变量值的方法,类似于php的var\u 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 ] 比如说,我需要在一

我想知道是否有一种快速获取对象所有变量值的方法,类似于php的
var\u 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的计算机上执行此操作。有没有办法在不遍历对象中的所有参数的情况下执行此操作?有这样的独立库吗?

您尝试过吗?它有很多Firebug功能

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

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


在IE、Chrome和Firefox上使用默认的开发工具,您将在包括Internet Explorer在内的所有主要浏览器中获得Firebug控制台

console.dir(myObject); 

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

JSON.stringify是一个不错的选择,但它适用于所有浏览器,只需包括lib:

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

例如:

        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---)"]'

作为一个快速的班轮我经常使用

   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

根据对

的回答,循环是否足够快…?@FelixKling不是JSON对象,它还能工作吗?@Hans。JSON对象是不存在的。
JSON.stringify
将数组和对象转换为JSON。不多不少。关于gdoron的评论,看看@FelixKling哦,哇,我想我以前没有真正使用过JSON。。。这真的很有趣,“假设我需要在一台不能使用firebug的计算机上完成这项工作。”根本不能使用任何开发工具?查看IE上的JSON.stringify.Right,console.dir会转储对象的所有信息,但console.log不会。在Chrome上,console.log工作正常。我将编辑答案以包含这些内容。我根本不能使用Firebug,我没有使用可以安装东西的计算机,所以我一直在开发IE。@Hans FirebugLite是一个Javascript库,请看我的链接,不要只发布带有链接的答案,如果链接腐烂了,那是没有用的。请记录,IE有一套可使用的开发人员工具,其中包括一个控制台。因此,console.log将适用于此…无需安装。