我在nodeJS项目中使用pdfKit-生成PDF。
我有一个存储数据的数组,用于填充正在运行的表。
但是我无法找出如何从数组内的对象中检索数据。在下面的示例中,我要检索child
对象。
我需要某种循环,但无法弄清楚如何添加!
如何创建一个包含Child数据的表,如下所示?
var dataArray = {
id: 12332,
products: [{
price: '10',
amount: '20',
child: [{ color: 'red', id: 101},{ color: 'green', id: 103}]
}, {
price: '55',
amount: '23',
child: [{ color: 'black', id: 106}]
}]
}
我正试图让我的桌子看起来像这样:
| price | amount |
------------------
| 10. | 20. |
------------------
|| red 101 ||
--------------
|| green 103 ||
------------------
| 10. | 20. |
------------------
|| black 106 ||
--------------
到目前为止,这是我的JS代码:
let i,
invoiceTableTop = 330;
generateTableRow(
doc,
invoiceTableTop,
"price",
"amount",
);
generateHr(doc, invoiceTableTop + 20);
for (i = 0; i < dataArray.products.length; i++) {
const item = dataArray.products[i];
const position = invoiceTableTop + (i + 1) * 30;
generateTableRow(
doc,
position,
item.price,
item.amount
);
}
function generateHr(doc, y) {
doc
.strokeColor("#aaaaaa")
.lineWidth(1)
.moveTo(50, y)
.lineTo(550, y)
.stroke();
}
function generateTableRow(doc, y, c1, c2) {
doc
.fontSize(10)
.text(c1, 50, y)
.text(c2, 150, y)
}
答案 0 :(得分:0)
您需要一个内部循环来遍历colors数组。
一旦有了item
对象,就循环遍历:
for (i = 0; i < item.child.length; i++) {
let child = item.child[i];
let color = child.color;
let id = child.id;
// do whatever with these values
}