Заменить часть строки буквой? - PullRequest
1 голос
/ 01 августа 2020

Я новичок в программировании ботов для Discord, но быстро осваиваю основы. Мой вопрос таков:

Я создал функцию, которая заменяет все символы в случайно выбранном слове на * Теперь я проверяю, является ли данная буква частью преобразованного слова, и возвращает, сколько раз она встречается .

Вот где я борюсь! Я хочу показать *, но я также хочу преобразовать обратно буквы в слове, которые совпадают.

Примерно так:

let word = 'emoticon';
let string = convert(word); // returns * * * * * * * *
if (checkChar(letter, word) > 0 ) {
  message.channel.send(`${letter} is found XX number of time(s)`);
  // Code to convert the word back to * * o * * * o * if o was the given letter
  message.channel.send(`${newword} here is a clue!`);
}
else {
  message.channel.send(`${letter} is not found!`);
}

Если кто-нибудь может помочь мне в этом, я буду бесконечно благодарен!

1 Ответ

0 голосов
/ 01 августа 2020

Вы можете использовать метод replace и передать ему обратный вызов для выполнения более сложной проверки. Здесь я запоминаю исходное слово, чтобы проверить, а затем букву с ним, пока я перемещаюсь по индексу скрытого слова по индексу.

const original = 'some word'
let hidden = original.replace(/./g, '*')
console.log(hidden) // *********

let testLetter = 'o'
hidden = hidden.replace(/./g, (c, i) => original[i] === testLetter ? testLetter : c)
console.log(hidden) // "*o****o**"
...