这是为了解决Wordle难题,我正试图用它来提高我的字符串算法技能,但我一直在思考如何使它适用于索引匹配的所有字符。
假设我们有一组单词。
['ducks', 'treks', 'tests', 'tease']
我们知道第一个字母是T,而 第二个字母这是使用Vue,所以这里是该组件的复制。下面是单独的方法。 这种方法的问题在于,它没有考虑以前字母的索引,它只是确保一个特定迭代的字母处于正确的索引。我想做些什么来确保所有索引都匹配,方法是在找到匹配项时进行筛选?
fetchPotentialWords() {
const potentialMatches = []
// Get only words of the correct length
let filteredWords = words.filter(x => x.length === this.letterCount)
// Iterate correct letters to map their placement
this.correctLetters.map((letter, index) => {
// Return early if undefined
if (letter === undefined) return;
// Filter words where indexes match
potentialMatches.push(...filteredWords.filter(x => x[index] === letter))
})
return potentialMatches
}
检查其中一个.correctLetters
的.every
(如果在那里定义了正确的字母(是否在适当的索引处匹配。不要将.map
用于副作用——因为您试图通过检查现有数组中的哪一个符合条件来创建数组,所以只使用.filter
。
fetchPotentialWords(){
return words
.filter(word =>
word.length === this.letterCount &&
this.correctLetters.every((letter, i) => !letter || word[i] === letter)
);
}