我有一个看起来像这样的字符串:
<tr><td>Date</td><td>Value</td></tr>
<tr><td>2013-01-01</td><td>231.198</td></tr>
<tr><td>2013-02-01</td><td>232.770</td></tr>
<tr><td>2013-03-01</td><td>232.340</td></tr>
<tr><td>2013-04-01</td><td>231.485</td></tr>
<tr><td>2013-05-01</td><td>231.831</td></tr>
<tr><td>2013-06-01</td><td>232.944</td></tr>
<tr><td>2013-07-01</td><td>233.318</td></tr>
...当然本质上是一个表。
我想动态地将这个字符串转换成一个包含 2 个数组的数组。一个日期,一个值。
[编辑于] 具有日期和值的对象数组也可以。
最佳答案
以下::
var input = // your string
var output = $(input).slice(1).map(function(i,el) {
var tds = $(el).find("td");
return { "date" : tds.eq(0).text(), "value" : tds.eq(1).text() };
}).get();
...将返回以下格式的对象数组:
[{"date":"2013-01-01","value":"231.198"}, {"date":"2013-02-01","value":"232.770"}, ... ]
如果您希望每个 value
都被视为一个数字,您可以像这样转换它:
return { "date" : tds.eq(0).text(), "value" : +tds.eq(1).text() };
// add the unary plus operator ---------------^
那么结果会是:
[{"date":"2013-01-01","value":231.198}, {"date":"2013-02-01","value":232.77}, ... ]
关于Javascript 表字符串到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18795670/