Javascript JQuery快速转储对象';s成员
我想知道是否有一种快速获取对象所有变量值的方法,类似于php的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 ] 比如说,我需要在一
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将适用于此…无需安装。