筛选在所有相同位置都有字母的单词

  • 本文关键字:单词 筛选 位置 javascript
  • 更新时间 :
  • 英文 :


这是为了解决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)
);
}

相关内容

  • 没有找到相关文章

最新更新