2017-04-22 60 views
-5

這裏是我的JSON代碼:轉換JSON數組在Javascript

[{"time":"18:00:00"},{"time":"10:00:00"},{"time":"16:30:00"}]

我要做到以下幾點:

  1. 從JSON代碼提取時間:如此:18:00 :00,10:00:00,16:30:00
  2. 我想將時間轉換爲:[18,0],[10,0],[16,30]
  3. 我想把它在一個數組中。

最終的結果應該是

var final = [ [18,0], [10,0], [16,30] ]; 

我怎麼能做到這一點的最有效和最快的(系統性能)可能的方式?

+1

一環,分割,刪除前導零,然後推到一個數組...我不明白其中的所有部分是給你的困難。 –

+2

你有試過什麼嗎? – ceejayoz

+0

沒有這樣的事情作爲JSON *代碼* - JSON是*總是*一個字符串 – naomik

回答

0

您可以將這些值拼接起來,只將前兩個元素作爲數字進行拼接。

var array = [{ time: "18:00:00" }, { time: "10:00:00" }, { time:"16:30:00" }], 
 
    result = array.map(o => o.time.split(':').slice(0, 2).map(Number)); 
 
    
 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

如果你有JSON刺痛,那麼你需要用JSON.parse第一解析它。

var json = '[{"time":"18:00:00"},{"time":"10:00:00"},{"time":"16:30:00"}]', 
 
    array = JSON.parse(json), 
 
    result = array.map(o => o.time.split(':').slice(0, 2).map(Number)); 
 
    
 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

+5

這是正確的。雖然我不認爲OP在任何時候都試圖弄清楚這一點,而且似乎只是將SO用作免費編碼服務。 –

+0

好的謝謝,但我的'時間'被包裹在像這樣的''時間''的引號中。它說array.map不是一個函數。 –

+0

@JohnJaoill,也許你真的有[JSON](http://json.org/)字符串,就像''[{「time」:「18:00:00」},{「time」:「10: 00:00「},{」time「:」16:30:00「}]'',您需要先用'JSON.pase'解析它。 –