2016-12-16 58 views
0

我有一個2維數組,如下所示。現在我想再添加3列(Col E,Col F,Col G),這三列應該有Col D的解析值。如何添加一列到二維數組使用谷歌應用腳​​本/ javascript

修改現有數組k(OR)可以創建一個新數組。

輸入:

k=[ 
[Col A, Col B, Col C, Col D], 
[1, A, 8, [(P0, 1), (P2, 7), (P1, 1)]], 
[2, B, 4, [(P2, 4)]], 
[3, C, 13,[(P2, 1)]]] 

輸出:

[Col A, Col B, Col C, Col D, Col E, Col F, Col G], 
[1, A, 8, [(P0, 1), (P2, 7), (P1, 1)],1,7,1], 
[2, B, 4, [(P2, 4)],0,4,0], 
[3, C, 13,[(P2, 1)],0,1,0]]] 

先謝謝了!

+0

歡迎來到SO。請提供您已經嘗試過的[示例](http://stackoverflow.com/help/mcve)代碼。 –

+0

目前還不清楚「這三列應該如何解析Col C的值」作品:你能解釋爲什麼第1行爲E,F,G輸出'1,7,1',第2行爲'0,4,0 '等等? – Bardy

+0

@Bardy - 對不起,錯字 - 這三列應該有解析值形式Col D –

回答

0

這是否做你所需要的?

它遍歷每一行,添加[0,0,0]並在位置處用數字替換0,只要它能找到替代規則即可。

請注意,我在while中做了一項任務,在使用像這樣的生成器時並不常見。

data6.map(function(row) { 
    var toExpand = row[row.length-1]; 
    var indices = /(?:\(P)(\d)/g; 
    var splitter = /(\d)(?:\))/g; 
    var extracted; 
    var eIndex; 

    toAdd = [0,0,0]; 
    while(extracted = splitter.exec(toExpand)) { 
    eIndex = indices.exec(toExpand); 
    toAdd[eIndex[1]] = extracted[1]; 
    } 
    return row.concat(toAdd); 
}); 
+0

https:// jsfiddle.net/szxq41qc/5/ - 你可以看看代碼,看看有什麼錯誤。我無法得到最終的輸出結果。 –

+0

對不起,我應該把它放到代碼的上下文中,這將取代data6定義後的所有內容。您可以將此映射操作的返回值存儲在變量中,或將其傳遞到其他位置。這是一個聲明,將期望的輸出作爲回報。 –

+0

感謝Robin的代碼片段將使用它來工作。 –

相關問題