У меня есть два div
с.Div
слева - мой ввод, div
справа - мой запрос, где я отображаю слова, которые нужно набирать по порядку.
При каждом нажатии клавиши во вводе первый символ текущего слова в приглашении div удаляется (при условии, что он совпадает с тем, который я только что набрал при вводе).
После того, как я ввел в поле ввода все символы слова, указанного в приглашении, я подтверждаю это нажатием клавиши «Пробел» и перехожу к следующему слову.
Все идет хорошо, пока не будет набрано все слово, и внезапно нет пробела между содержимым ввода и следующим словом в приглашении.Он просто исчезает (обратите внимание, что пробелы между словами происходят из параметра [separator] в Array.join (), который я использовал для отображения содержимого в моем приглашении div.
Я уже пытался replace Array.join(' ') with Array.join('*')
.Это решило мою проблему, поскольку звездочка не исчезает после ввода всего слова, в отличие от моего разделителя пробелов, однако я не хочу, чтобы мое слово отделялось каким-либо «символом», кроме пробелов.
Я имеютакже пытался использовать какой-то фильтр или изменить мое вычисляемое свойство, чтобы оно начиналось с пробела каждый раз, когда первое слово становится пустой строкой, но оно также не работает.
let animals = ['dog', 'horse', 'cat', 'dog', 'horse', 'cat', 'dog', 'horse', 'cat', 'dog', 'horse', 'cat'];
let animalsString = animals.join(' ');
document.querySelector('.animals-container').innerText = animalsString;
document.querySelector('.input').addEventListener('keydown', () => {
let remainingChars = this.animals[0].slice(1);
this.animals = this.animals.slice(1);
this.animals.unshift(remainingChars);
document.querySelector('.animals-container').innerText = this.animals.join(' ');
});
.app {
display: flex;
}
.input {
text-align: right;
}
<div class="app">
<input class="input">
<p class="animals-container"></p>
</div>
Codepen: https://codepen.io/anon/pen/zVmBjP
Ожидается пробел между входным содержимым div
и первым словом приглашения, когдавсе слово было напечатано.