2017-02-27 80 views
0

我知道這是一個簡單的問題......但是我被堆積了。我想將包含字符串的數組數組轉換爲包含對象的數組數組。JavaScript:將包含字符串的數組數組轉換爲包含對象的數組數組

what_i_have = [ 
    [ 
    "{"point1":"recommendation number 1 text"}", 
    "{"point2":"recommendation number 2 text"}" 
    ], 
    [ 
    "{"point1":1.5}","{"ponit2":2}" 
    ], 
    [ 
    "{"point1":1.5}","{"point2":2}" 
    ] 
] 

我想要得到這樣的:

what_i_want = [ 
    [ 
    {"point1":"recommendation number 1 text"}, 
    {"point2":"recommendation number 2 text"} 
    ], 
    [ 
    {"point1":1.5},{"ponit2":2} 
    ], 
    [ 
    {"point1":1.5},{"point2":2} 
    ] 
] 

我試了幾種方法。數組的JSON.parse()元素的最後一種方式。但是我總是做錯了一些事情。 任何建議都會受到歡迎。提前致謝!

+2

嗯,你的第一個代碼是無效的。 – epascarello

+0

你可以檢查你的單引號和雙引號嗎? –

+0

是的。道歉。 – Dubliner

回答

0

我覺得Array.prototype.map是你想要的,即

what_i_want = what_i_have.map(arr => arr.map(str => JSON.parse(str))) 

有一些問題,在您的代碼示例",但忽略了map應該做你想要什麼。

+0

是的。我可以在我的問題中看到初始數組。它會導致解析問題。 – Dubliner

0

使用JSON.parsemap這樣的:

var result = what_i_have.map(function(subarr) { 
    return subarr.map(function(str) { 
     return JSON.parse(str); 
    }); 
}); 
0

只是遍歷與JSON.parse

what_i_have = [ 
 
    [ 
 
    '{"point1":"recommendation number 1 text"}', '{"point2":"recommendation number 2 text"}' 
 
    ], 
 
    [ 
 
    '{"point1":1.5}', '{"ponit2":2}' 
 
    ], 
 
    [ 
 
    '{"point1":1.5}', '{"point2":2}' 
 
    ] 
 
] 
 
for (var i = 0; i < what_i_have.length; i++) { 
 
    var arr = what_i_have[i]; 
 
    for (var j = 0; j < arr.length; j++) { 
 
    arr[j] = JSON.parse(arr[j]); 
 
    } 
 
} 
 
console.log(what_i_have);

+0

謝謝!然而,其中一個問題是所有的「理論上」字符串我都使用雙引號。所以它會導致解析問題,我想。任何建議來解決這個額外的問題? – Dubliner

+0

恩,這是不可能的,因爲JavaScript不會執行,它會引發錯誤。您是否嘗試運行代碼並查看它是否運行? – epascarello

+0

JSON.parse不起作用。 – Dubliner

相關問題