将jQuery对象数组转换为新数组

时间:2017-03-09 03:18:41

标签: javascript jquery ruby-on-rails

目前我的Rails控制器正在返回一个对象数组:

var _data = [];

$.getJSON(my_url, function(data) {
  $.map(data, function(v) {
     _data.push([v.occurrences, v.period])
   });
});

console.log(_data) => []

扩展时看起来像这样:

Array[4]
 0:Object
 1:Object
 2:Object
 3:Object

扩展后的单个对象如下所示:

0:Object
 occurrences:1
 period:1488499200000

我无法映射初始对象数组,以至于我的最终结果将是由每个对象组成的数组数组'发生价值和期间价值。

最终结果应该像:

[[1488499200000, 1],[.., ..],[.., ..],[.., ..]]

这样我就可以将图表中的每个数组用作x和y轴点。

我尝试过使用.map,.each,(for i in ..)等等,没有运气。

编辑:

这是我的图表数据:

var line_data2 = {
  data: _data,
  color: "#00c0ef"
};

$.plot("#myGraph", [line_data2], {
  grid: {
    hoverable: true,
    borderColor: "#f3f3f3",
    borderWidth: 1,
    tickColor: "#f3f3f3"
  },
  series: {
    shadowSize: 0,
    lines: {
      show: true
    },
    points: {
      show: true
    }
  },
  lines: {
    fill: false,
    color: ["#3c8dbc", "#f56954"]
  },
  yaxis: {
    show: true,
  },
  xaxis: {
    show: true,
    mode: "time",
    timeformat: "%m/%d/%Y"
  }
});

1 个答案:

答案 0 :(得分:0)

可能有比这更优雅的解决方案,但这会让你得到我认为你要求的形状阵列。

if (cond1 and cond2) or (not cond1 and not cond2):

你可以更进一步,只需循环遍历对象,而不是硬编码名称。

let _data = [
  {occurrences: 1, period: 200},
  {occurrences: 3, period: 300},
  {occurrences: 6, period: 400}
];

let newData = _data.map((x)=>{
  let arr = [];
  arr.push(x.occurrences);
  arr.push(x.period);
  return arr;
});

console.log(newData);