Итерация очищенных данных для возврата в качестве объектов поля внутри встраивания - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть бот Discord, который очищает веб-данные из неупорядоченного списка, количество элементов списка в ul может изменяться неделя за неделей от минимум 5 до пика 20.

Я используюэтот код для очистки данных (node.js и Cheerio):

$('li').eq(65).siblings().each(function(i, elem) {
                details[i] = $(this).text().replace(/\*/g, ' ').split('/').join('or').trim();
            });

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

Внедрение выполняется с помощью этого кода:

const embed = new Discord.RichEmbed()
                    .setColor(0xf1c40f)
                    .setTitle('Listing For The Week:')
                    .addField('Items', `${details}`)
                    .setTimestamp();

                client.channels.get('546033223172620288').send({ embed });

Это просто отображает все скопированные данные в одном поле, и это выглядит ужасно, как вы можете себе представить, поэтому я хочуитерации данных в отдельные .addFields.

Я учу JS, так что мне нужно сделать, чтобы получить желаемый результат?Я пытаюсь сделать что-то вроде этого:

for (let i = 0; i < details.length; i++) {
               .addField('ITEM:', details);
            }

, но у меня нет знаний о том, как работать с объектом .addField, и я продолжаю получать ошибки и обнаруживать, что Google не помогает мне выяснитькак подойти к этому с помощью точечной нотации на addField внутри цикла for.

1 Ответ

1 голос
/ 03 апреля 2019

Полагаю, ты один правильный путь.Вы не можете просто иметь "случайный" .addField() там, как это все же.Просто используйте существующую переменную embed в цикле - embed.addField('ITEM', details)

...