所以我在处理一个使用ES5 JavaScript的旧代码库,这意味着我无法展开数组。
var listOfItems = [ ['item1', 'test', '1'], ['item2', 'test2', '2'] ];
var docDefinition =
{
style: 'piecesTable',
table: {
widths: ['*', '*', '*'],
body: [
[
{text: 'Reference', style: 'tableHeader'},
{text: 'Alias', style: 'tableHeader'},
{text: 'Type', style: 'tableHeader'},
],
...listOfItems
]
}
};
如何在不使用上述...listOfItems
的展开语法的情况下展开listOfItems
?
listOfItems应该展开为两个单独的数组,因此结果应该是:
var docDefinition =
{
style: 'piecesTable',
table: {
widths: ['*', '*', '*'],
body: [
[
{text: 'Reference', style: 'tableHeader'},
{text: 'Alias', style: 'tableHeader'},
{text: 'Type', style: 'tableHeader'},
],
['item1', 'test', '1'],
['item2', 'test2', '2']
]
}
};
docDefinition
定义之后,您可以这样做:listOfItems.forEach((item) => {docDefinition.table.body.push(item)}
? - CVericaconcat()
也可以正常工作,并且看起来更加简洁。祝你好运! - CVericaforEach
是es5,但箭头函数不是。因此,它应该是listOfItems.forEach(function (item) { docDefinition.table.body.push(item)})
。 - CVerica