我想知道是否有一种快速获取对象变量值的方法,类似于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的计算机上执行此操作。有没有办法在不迭代对象中的所有参数的情况下执行此操作?有没有一个像这样的独立库?
答案 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 + "]");
}