2

我一直在寻找可以帮助我实现 AreaChart 的东西。问题是我有这样的东西。

var items = new Array();
if ($(result).find('dato').length > 0 ) {
  items = ["Date", "Kg Emitted", "Kg Reduced"];
  $(result).find('dato').each(
    function (i) {
      var item = new Array();
      var date = $(this).find("fecha").first().text();
      var kge = parseInt($(this).find("emitido").first().text());
      var kgr = parseInt($(this).find("reducido").first().text());
      item = [date,kge,kgr];
      items.push.apply(items, item)
    }
  );
};

问题是我需要它的格式如下:

items = ["Date","Kg Emitted", "Kg reduced"], [2013-01-01, 3, 4], [2013-01-02, 1, 3], etc

我将不胜感激有关如何格式化此嵌套数组的任何帮助,因为到目前为止我已经尝试过items.push.apply(items, item),但它似乎不起作用。

4

3 回答 3

1

每个人都在这里给了你正确的答案,我想补充一点,你数组中的第一个值不正确,实际上是 3 行。

看看这个小提琴的区别

您需要添加另一个[..].

于 2013-06-11T14:56:36.777 回答
1

只需更改items.push.apply(items, item)items.push(item).

当您像这样使用 apply 时,您实际上是在做与Array.prototype.concat相同的事情。

于 2013-06-11T14:47:46.930 回答
1

您的初始化items并未将其设置为嵌套数组。元素 0 是“日期”,1 是“Kg Emitted”,2 是“Kg Reduced”。

你想开始它

items = [["Date", "Kg Emitted", "Kg Reduced"]];

这将使数组的元素 0 变为 ["Date", "Kg Emitted", "Kg Reduced"],这就是您所说的您想要的。

然后,正如其他人已经说过的那样,更改items.push.apply(items, item)

items.push(item);
于 2013-06-11T14:49:03.803 回答