Javascript 表字符串到数组

标签 javascript jquery arrays string html-table

我有一个看起来像这样的字符串:

<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/

相关文章:

javascript - 当某些调用有效而其他调用失败时 $q.all() 会发生什么?

javascript - 如何调试 LG Webos Chromium 浏览器? (模拟器)

jquery - JQ加载窗口功能不起作用

Javascript/HTML : Match two circles of same numbers?

c++ - 试图在二维数组中创建一个圆

PHP 数组修剪空白索引值

javascript - 试图在jQuery中实现这种动画效果

javascript - 在 packery 模块中按轴限制运动

javascript - 从表的td获取id

jquery - Rails v3 与 select2 gem 忽略 client_side_validation 错误消息