我有一个像这样的对象:
Object { 111111={...}, 222222={...}, 333333={...} }
该对象称为实体。我需要从这个对象中获取一个随机项,例如“111111”或“222222”。
现在是我的代码:
var tmpList = Object.keys(entities);
var randomPropertyName = tmpList[ Math.floor(Math.random()*tmpList.length)];
var propertyValue = entities[randomPropertyName];
这将propertyValue设置为“[object Object]”。我希望它是“111111”,或“222222”,或“333333”等。
答案 0 :(得分:2)
你所看到的是完全正确的。
randomPropertyName
返回entities
对象中的一个键,然后您使用该键作为参考,返回entities
中分配给它的任何值(使用{ {1}})。
但是,在问题的开头,您将每个密钥的值描述为对象(entities[randomPropertyName]
),这就是{...}
为其分配的内容。 。 。一个对象。
如果您需要密钥(例如“111111”,“222222”等),则可以引用propertyValue
而不是randomPropertName
。 。 。如果您想要存储在propertyValue
中的值内的其他数据,那么您必须通过它的密钥专门引用它:propertyValue
或者:propertyValue.KEY_NAME
。