У меня есть массив строк, которые на самом деле являются объектами.
buildTaskMatrix(pages) {
let allTasks = [];
for (let i = 0; i < pages.length; i++) {
const page = pages[i];
for (let j = 0; j < page.tasks.length; j++) {
const task = page.tasks[j];
allTasks.push(
`[{ text: task.panelName, fontSize: 5, colSpan: 2 },
{},
{ text: task.panelQty },
{ text: task.panelWidth + 'x' + task.panelHeight },
{ text: task.substrateName, fontSize: 5, colSpan: 2 },
{},
{ text: task.producingBranch, fontSize: 5, colSpan: 2 },
{},
{ text: task.specialInstructions, fontSize: 5, colSpan: 3 },
{},
{}]`
);
// const test = allTasks[j][0].replace('"', '');
// const test2 = test.slice(0, -1);
}
}
return allTasks;
}
Я пытаюсь либо заменить строки, либо найти другое решение, чтобы добавить их в мой объект PDFmake, который должен быть в формате ниже.
[
{ text: '2', style: 'header', fontSize: 5, colSpan: 2 },
{},
{ text: 'Qty', style: 'header', fontSize: 5 },
{ text: 'Size', style: 'header', fontSize: 5 },
{ text: 'Substrate', style: 'header', fontSize: 5, colSpan: 2 },
{},
{ text: 'Prod City', style: 'header', fontSize: 5, colSpan: 2 },
{},
{ text: 'Notes', style: 'header', fontSize: 5, colSpan: 3 },
{},
{}
],
Я пытался..
taskMatrix[0].replace('"', '')
который, похоже, не работает.
Массивы не удерживают несколько объектов в одной позиции, но для меня это было бы идеальным решением. Я думаю, что я неправильно подхожу к этому и очень надеюсь, что кто-то поймет, что я делаю неправильно.
Вот что я в итоге сделал. Мой подход был супер тупым
Так что давайте поработаем над этим. Но сначала, можете ли вы объяснить, почему style появляется в версии to be, но отсутствует в версии as is?



Вы должны либо вставить объект непосредственно в массив, либо, если вам действительно нужны строки по какой-либо причине, используйте JSON.parse () для преобразования строки текста в формате JSON в объект Javacript. Однако вам нужно будет правильно параметрировать строку и убедиться, что текстовые поля заключены в двойные кавычки.
У вас нет массива строк, которые на самом деле являются объектами, у вас есть массив строк. И поскольку вы использовали массив строк, вам теперь требуется специальный синтаксический анализатор строк, чтобы преобразовать строку в объект, который вы можете использовать. Сценарий использования этой круговой логики трудно понять. Почему бы просто не толкать объекты в первую очередь?