我正在创建一个类似Awkwords的单词生成器,它可以从标记的数组中随机选择一个字母并将其放入序列中。
我目前只是将标签作为其数组的第一项。这里有一个简单的版本:
let sequence = 'CVC'
let word = ''
let consonants = ['C', 'b', 'c', 'd',]
let vowels = ['V', 'a', 'e', 'i',]
let lists = [consonants, vowels]
for (letter of sequence) {
for (list of lists) {
if (list[0] === letter) {
pick random letter out of the list other than its first value and add it to the word
}
}
}
一般来说,我对编程几乎是全新的,所以我不知道这是否是我应该做的事情。有没有更有效的方法来标记数组?
最多将有26个列表(每个字母一个(,其中的项目将根据用户输入的内容而变化。
获得类似"标记数组"的东西的一种方法是使用javascript对象。在这里,您可以将字母用作键(或属性(,并将相关列表用作值。这也将节省您在列表中循环搜索所需字母的时间。
试试下面这样的东西:
let sequence = "CVC";
let word = "";
let patterns = {
C: ["b", "c", "d"],
V: ["a", "e", "i"]
};
for (letter of sequence) {
// do something here with patterns[letter]
console.log(patterns[letter])
}