我想弄清楚下列对象中有多少属性。显然,我可以看到2,但我需要动态地知道。获取JQuery对象中的属性数量
var test = $.parseJSON('{ "ddSize": "Size", "ddColor": "Color" }');
如果我尝试:
var mylen = test.length;
。长度是不确定的。此对象中的属性数量将改变。有时它是1,有时是2或3,但我无法弄清楚如何测试它。
我想弄清楚下列对象中有多少属性。显然,我可以看到2,但我需要动态地知道。获取JQuery对象中的属性数量
var test = $.parseJSON('{ "ddSize": "Size", "ddColor": "Color" }');
如果我尝试:
var mylen = test.length;
。长度是不确定的。此对象中的属性数量将改变。有时它是1,有时是2或3,但我无法弄清楚如何测试它。
这是一个JavaScript JSON对象。 length
功能不可用。
与纯JavaScript解决方案一:
var data = $.parseJSON('{ "ddSize": "Size", "ddColor": "Color" }');
var keys = [];
for (key in data) {
keys.push(key);
}
// numberOfKeys should equal to 2
var numberOfKeys = keys.length;
第二个解决办法,如果你喜欢的jQuery:
var data = $.parseJSON('{ "ddSize": "Size", "ddColor": "Color" }');
var keys = [];
$.each(data, function(key, value) {
keys.push(key)
});
// numberOfKeys should equal to 2
var numberOfKeys = keys.length;
的【如何有效地计算按键的数量
可能重复/在JavaScript中的对象的属性?](http://stackoverflow.com/questions/126100/how-to-efficiently-count-the-number-of-keys-properties-of-an-object-in-javascrip) – 2012-07-06 21:26:31
'Object.keys(obj).length'看起来像一个优雅的做法,但它似乎有兼容性限制。我将所有主流浏览器(包括IE浏览器)定位到IE7。感谢您的链接,显然有很多方法可以做到这一点。 – rwkiii 2012-07-06 21:34:15
这先前的问题也可能感兴趣的:http://stackoverflow.com/questions/5223/length-of-javascript-object-ie-associative-array – 2012-07-06 21:36:13