@SaberChazer

"Приложение с историями", вопрос с масивами?

Здравствуйте, вот сразу ссылка.
А вот теперь подскажите пожалуйста как в этом случае правильно можно было бы использовать js массивы (ну как по мне кажется что тут нужны именно массивы, так как писать в ручную (блоки с СМС) это очень долго и запутанно)
  • Вопрос задан
  • 161 просмотр
Решения вопроса 2
anatoly_kulikov
@anatoly_kulikov
Помог ответ? Отметь решением!
Ну так все правильно думаешь. Варианты можно всякие придумать, например такой: нужно два массива, один со строками (или лучше даже с объектами, там можно будет для каждого сообщения много инфы тащить, типа имя отправителя, текст, аватарку и т.д.), а второй - пустой.

Далее сделать рекурсивную функцию, которая перекладывает первый элемент первого массива во второй, пока там что-то есть.

По красоте можно ещё задержку не константную сделать, а в зависимости от длины сообщения (узнать эмпирическим методом можно или прогуглить среднюю скорость натыкивания текста), но не меньше, чем x (чтобы короткие не устроили фейерверк).
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
document.addEventListener('keydown', function(evt) { // слушаем нажатия кнопок
  if (evt.code === 'Enter')
    showNextMsg();
});

const msg = function* () {
	yield* [ // генерируем сообщения
    { name: 'Вася', txt: 'Привет!' },
    { name: 'Петя', txt: 'И тебе привет!' },
    { name: 'Вася', txt: 'Как дела?' },
    { name: 'Петя', txt: 'Хреново, мой хомяк заболел' },
    { name: 'Вася', txt: 'Аха-ха-ха' },
    { name: 'Петя', txt: 'Василий, вы - бесчувственная скотина!' },
  ];
}();

function showNextMsg() {
  let m = msg.next(); // получаем следующее сообщение
  if (!m.done) { // выводим его
    userName.textContent = m.value.name;
    userMessage.textContent = m.value.txt;
  }
}

https://jsfiddle.net/Stalk/8gm3y9w7/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
25 нояб. 2024, в 02:45
2000 руб./за проект
24 нояб. 2024, в 23:46
20000 руб./за проект