繁体   English   中英

检查字典对象的长度

[英]Checking length of dictionary object

我正试图检查这里的长度。 试过数。 有什么我想念的吗?

var dNames = {}; 
dNames = GetAllNames();

for (var i = 0, l = dName.length; i < l; i++) 
{
        alert("Name: " + dName[i].name);
}

dNames包含名称/值对。 我知道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 您是在对象上手动设置0 ,还是依赖自定义字符串键? 例如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 size_dict(d){c=0; for (i in d) ++c; return c}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM