hdacollection
@hdacollection
Обучаюсь - Графический дизайнер | Web-разработчик

Как вывести определённое количество сообщений, а не все и какие параметры требуются добавить для управления функцией?

Код:
let thread = {
    title: "Поделитесь книжкой",
    author: "RuBrick",
    total: 23,
    messages: [
        {
            id: 13201,
            date: "2018-01-09",
            text: "Посоветуйте, пожалуйста, с одной стороны подробную, а с другой доступную для понимания книгу по javascript. Спасибо",
            author: {
              name: "RuBrick",
              login: "ru_brick",
              reputation: 3,
              role: "user"
            }
        },
        {
            id: 13208,
            date: "2018-01-12",
            text: "Неужели нет хорошей литературы?",
            author: {
              name: "RuBrick",
              login: "ru_brick",
              reputation: 3,
              role: "user"
            }
        },
        {
            id: 13209,
            date: "2018-01-12",
            text: "в общем, NodeJS это JS + некоторые доп. модули и объекты. Тебе нужна литература по самому JS и дока на официальном сайте.",
            author: {
              name: "Popov",
              login: "popov_ma",
              reputation: 2310,
              role: "user"
            }
        },
        {
            id: 13219,
            date: "2018-01-14",
            text: "В сети много сайтов с хорошими объяснениями + есть курсы.",
            author: {
              name: "Void",
              login: "void",
              reputation: 5005,
              role: "user"
            }
        },
        {
            id: 13220,
            date: "2018-01-14",
            text: "Есть большая книга «JavaScript.Подробное руководство», потом смотришь документацию.",
            author: {
              name: "noname",
              login: "noname",
              reputation: 100,
              role: "user"
            }
        },
        {
            id: 13250,
            date: "2018-01-19",
            text: "Или можно посмотреть видео-курсы на youtube! А самое главное - практика! И этот форум - лучшая тренировочная площадка!",
            author: {
              name: "noname",
              login: "noname",
              reputation: 110,
              role: "user"
            }
        },
        {
            id: 13259,
            date: "2018-01-20",
            // text: "Понял, спасибо!",
            author: {
              name: "RuBrick",
              login: "ru_brick",
              reputation: 13,
              role: "user"
            }
        }
    ]
};


Решение на данном этапе:
function showThemes() {
  let amount = thread.messages.length; // количество сообщений
  console.log("Всего сообщений: " + amount + "\n");
  
for (let i = 0; i < thread.messages.length; i++) {
    let name = thread.messages[i].author.name; // пользователь
    let reputation = thread.messages[i].author.reputation; // репутация
    let {text} = thread.messages[i]; // текст
    text = text || '«Ошибка формата! В теме нет сообщений»' // текст - отсутствует

    console.log(`${name} (репутация: ${reputation}): ${text}`);
  }
}

showThemes();
  • Вопрос задан
  • 333 просмотра
Пригласить эксперта
Ответы на вопрос 2
@zephire
Здравствуйте, в начале цикла на первой строчке просто добавите проверку
if (i > 2) continue;
Ответ написан
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
Очевидно что нужно задать лимит вывода, а по уму не использовать глобальные переменные, а передавать итерируемый массив. Но это если какая-то хотя бы архитектура, в вашем случае лимит добавьте.
function showThemes(limit=3) {
...
   for (let i = 0; i < thread.messages.length; i++) {
      if($i==limit)return;
...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы