标记用户输入的数组的最佳方法是什么?

What is the best way to label user-inputted arrays?

我正在创建一个类似 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 个列表(每个字母一个),其中的项目将根据用户输入的内容而变化。

获得类似 "labeled array" 的东西的一种方法是使用 javascript 对象。在这里,您可以将字母用作 keys(或 properties),并将关联列表用作 value。这也将节省您在列表中循环搜索所需字母的时间。

试试下面的方法:

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])
}