从JavaScript对象中选择随机项?

时间:2016-07-05 18:12:32

标签: javascript jquery

我有一个像这样的对象:

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”等。

1 个答案:

答案 0 :(得分:2)

你所看到的是完全正确的。

randomPropertyName返回entities对象中的一个键,然后您使用该键作为参考,返回entities中分配给它的任何值(使用{ {1}})。

但是,在问题的开头,您将每个密钥的值描述为对象(entities[randomPropertyName]),这就是{...}为其分配的内容。 。 。一个对象。

如果您需要密钥(例如“111111”,“222222”等),则可以引用propertyValue而不是randomPropertName。 。 。如果您想要存储在propertyValue中的值内的其他数据,那么您必须通过它的密钥专门引用它:propertyValue或者:propertyValue.KEY_NAME