Подскажите как сделать данный скрипт

Возможно, здесь есть добрые люди, которые могут помочь с этим вопросом. Суть в следующем: существует сервис поздравлений, который генерирует случайный текст поздравлений из блоков таблицы. Мне нужно сделать точно такую же таблицу, только используя свой собственный текст, все остальное оставить как есть. Я уже подготовил сайт и стили, мне нужен сам скрипт, который генерирует сообщение, используя информацию из блоков таблицы. Прошу направить меня на материал который мне следует изучить.

Прошу прощения, если я допустил ошибки в оформлении темы, впервые на этом ресурсе.

image


Ответы (1 шт):

Автор решения: Daniil Loban

Что касается изучения материалов, то специальных тем посвященных данному вопросу нет, достаточно знать базовый синтаксис JS и уметь пользоваться встроенными функциями для получения рандомных чисел.

Далее нужно составить удобную структуру данных, в данном случае я применил массив объектов, где start- это заголовок колонки, end - массив возможных концовок.

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

При желании можно еще рандомно пропускать какие-то части теста

const arr = [
  { start: 'Дорогая', end: [ 'от всего сердца и души', 'поздравляю!' ]},
  { start: 'я желаю', end: [ 'тебе оставаться такой же', 'тебе впреди счастливых лет']},
  { start: 'будь', end: [ 'всегда яркой', 'легка на подъем' ]},
  { start: 'и пусть', end:[ 'всегда рядом будут люди', 'каждый день приносит радость']}
]

const generate = () => {
  let text = ''
  for (const {start, end} of arr){ // выбираем начало и окончания
    // случайный номер окончания
    const rand = Math.floor(Math.random() * end.length) 
    // добавляем в поздравление фразу
    text += `${start} ${end[rand]} `
  }
  return text
}

// вывод поздравлений
console.log(generate())
console.log(generate())
console.log(generate())

→ Ссылка