2017-08-13 36 views
3

我通過陣列需要循環,但語句位於括號[]如何使用array.map與2維數組

然而不允許放置支架之間的for語句將因此導致搜索互聯網,我發現array.map()可能是一個解決方案。 但是我可以在多維數組中找不到array.map的示例,並且無法讓我的代碼正常工作。

下面的示例創建一個表並將其導出到pdf文件中。 這正常工作,但只針對靜態表的工作原理:

var docDefinition = { 
content: [ 
{ 
    table: { 
    body: [ 
     [ 'First', 'Second', 'Third', 'The last one' ], 
     [ 'Value 1', 'Value 2', 'Value 3', 'Value 4' ], 
     [ 'Val 1', 'Val 2', 'Val 3', 'Val 4' ] 
    ] 
    } 
} 
]}; 

JSFiddle

我需要的代碼爲動態工作表中。 我想從數組中創建一個表,無法讓它正常工作。 這是我到目前爲止有:

function html2Pdf(){ 
var arr = [[ 'First', 'Second', 'Third', 'The last one' ],[ 'Value 1', 'Value 2', 'Value 3', 'Value 4' ],[ { text: 'Bold value', bold: true }, 'Val 2', 'Val 3', 'Val 4' ]];  
var docDefinition = { 
content: [ 
{ 
    table: { 
    body: [ 
    arr.map(function(item){ 
     return item 
    })  
    ] 
    } 
} 
] 
}; 
pdfMake.createPdf(docDefinition).open(); 
} 

JSFiddle

+2

爲什麼不只是'body:arr'? –

+0

同時點擊''''並在這裏發佈代碼而不是JSFiddle在[mcve]中 – mplungjan

回答

2

作爲評論這是非常好的給定數組中注入直接導致結構之前。

 
table: { 
    body: arr 
    } 

關於你提到的關於如何在二維陣列使用陣圖的問題:你可以嵌套它相當,你會用for循環或類似的事情。

 
body: arr.map(function(row) { 
    return row.map(function(cell) { 
     return foo(cell); 
    }); 
}) 
+0

直接向陣列中注入數組確實有效。感謝您解釋在多維數組上使用array.map。 – Dummy