标记用户输入的数组的最佳方法是什么?
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])
}
我正在创建一个类似 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])
}