检查字典对象的长度
我试图在这里检查的长度。 试过数。 有什么我失踪?
var dNames = {}; dNames = GetAllNames(); for (var i = 0, l = dName.length; i < l; i++) { alert("Name: " + dName[i].name); } d名称包含名称/值对。 我知道dNames在这个对象中有值,但它仍然完全在跳过,当我警告甚至dName.length显然不是如何做到这一点…所以不知道。 在网上查了一下。 在这找不到任何东西。
我所做的就是使用Object.keys()返回所有键的列表,然后获取它的长度
 Object.keys(dictionary).length 
 var c = {'a':'A', 'b':'B', 'c':'C'}; var count = 0; for (var i in c) { if (c.hasOwnProperty(i)) count++; } alert(count); 
 这个问题很混乱。 一个常规的对象{}不具有length属性,除非你打算使自己的函数构造函数生成具有它的自定义对象(在这种情况下,你没有指定)。 
 也就是说,你必须通过对象的for..in语句来获得“length”,因为length没有被设置,并且增加一个计数器。 
 我很困惑,为什么你需要这个length 。 你是手动设置对象上的0 ,还是你依靠自定义的string键? 例如obj['foo'] = 'bar';  。 如果后者又一次,为什么需要长度? 
编辑#1 :为什么你不能这样做?
 list = [ {name:'john'}, {name:'bob'} ]; 
 然后遍历列表?  length已经设定。 
在字典中计算和显示键(在控制台中运行):
 o=[];count=0; for (i in topicNames) { ++count; o.push(count+": "+ i) } o.join("\n") 
示例输出:
 "1: Phase-out Left-hand 2: Define All Top Level Taxonomies But Processes 3: 987 4: 16:00 5: Identify suppliers" 
简单的计数function:
 function size_dict(d){c=0; for (i in d) ++c; return c}