簡體   English   中英

將jQuery對象數組轉換為新數組

[英]Turn jQuery array of objects into a new array

當前,我的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((對於..中的i)),但是沒有運氣。

編輯:

這是我的圖表數據:

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"
  }
});

可能有比這更優雅的解決方案,但這將為您提供我認為您需要的定型陣列。

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);

您可以更進一步,只遍歷對象而不是對名稱進行硬編碼。

let newData = _data.map((x)=>{
  let arr = [];
  for(let i in x){
    arr.push(x[i]);
  }
  return arr;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM