У меня есть огромный список слов, которые я проанализировал из файла words.txt и отфильтровал числа, знаки пунктуации и все слова, которые имеют заглавные буквы. Затем мне нужно пройти через этот массив, взять каждое слово и вернуть значения из объекта letterScores. В качестве вывода я всегда получаю NaN, и, поскольку я новичок в JS, я понятия не имею, как заставить его работать.
Я также пытался использовать метод map () вместо того, чтобы помещать значения в пустой массив, но получилТо же, не выходной номер. Я считаю, что должен быть более простой способ достичь того же результата, о котором я не знаю.
var text = fs.readFileSync("./words.txt").toString('utf-8');
var textByLine = text.split("\n")
//--------------------------------------------------------//
const task1 = () =>{
letterScores = {
a:1, e:1, i:1, o:1, u:1, l:1, n:1, s:1, t:1, r:1,
d:2, g:2,
b:3, c:3, m:3, p:3,
f:4, h:4, v:4, w:4, y:4,
k:5,
j:8, x:8,
q:10, z:10
}
let wordScores = []
let filtered = textByLine.filter((word) => !/\W|\d|[A-Z]/.test(word))
filtered.forEach((word) =>{
const newWord = [...word]
sum = 0
for (let letters in newWord){
sum += letterScores[letters]
}
wordScores.push(sum)
})
return wordScores
}
console.log(task1())