我想退后一步是为了。我最初的问题在这篇文章的底部供参考。
我正在写一个猜词游戏,想要一种方法: 1. 给定 2 - 10 个字符的单词长度,随机生成一个有效的英文单词来猜测 2. 给定 2 - 10 个字符的猜测,确保它是一个有效的英文单词。我创建了一个包含 9 个对象的向量,每个对象对应一个单词长度,并使用单词列表中的单词动态创建 172000 个属性/值对来命名属性并将它们的值设置为 true。内循环是:
for (i = 0; i < _WordCount[wordLength] - 2; i)
{
_WordsList[wordLength]["" + _WordsVector[wordLength][i++]] = true;
}
要验证一个 word ,如果有效,以下查找将返回 true:
function Validate(key:String):Boolean
{
return _WordsList[key.length - 2][key]
}
我将它们从向量转移到对象以利用散列查找属性。没有看过这一切需要多少内存,但这是一个有用的学习练习。我只是不确定如何最好地从其中一个对象中随机选择一个属性。我正在考虑通过生成 1000 000 个单词并分析分布的统计数据来验证我选择的任何方法。所以我想我的问题应该首先是我是否最好使用其他方法,例如将列表保存在向量中并每次都进行搜索?
原始问题
新手第一个问题:
我读了一个线程,说 for.. in 中的遍历顺序由哈希表确定并且看起来是随机的。
我正在寻找一种随机选择对象中属性的好方法。a for .. 中的第一个元素是否会遍历属性,或者迭代中的随机第 n 个元素是真正随机的。我想确保访问给定属性的概率大致相等。对象具有大约 100 到 20000 个属性。其他方法?
谢谢。