2017-04-22 64 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'解析它。 –