Javascript 将数据转换为数组的数组

Javascript 将数据转换为数组的数组,javascript,arrays,object,Javascript,Arrays,Object,我目前使用PHP(Laravel)以应用程序后端的格式返回数据: 然后,我想在前端使用JavaScript(Vue)将这些数据绘制成图表,这些数据是特定公司每月的平均订单值。但要使其正常工作,需要采用以下格式: new_data [ ["Jan", 120], ["Feb", 283.5], ["Mar", 10], ["Apr", 233.92], ["May", 327.78], ["Jun", 190.74], ["Jul", 10], ["Aug", 10

我目前使用PHP(Laravel)以应用程序后端的格式返回数据:

然后,我想在前端使用JavaScript(Vue)将这些数据绘制成图表,这些数据是特定公司每月的平均订单值。但要使其正常工作,需要采用以下格式:

new_data [
  ["Jan", 120],
  ["Feb", 283.5],
  ["Mar", 10],
  ["Apr", 233.92],
  ["May", 327.78],
  ["Jun", 190.74],
  ["Jul", 10],
  ["Aug", 10],
  ["Sep", 10],
  ["Oct", 10],
  ["Nov", 10],
  ["Dec", 10]
]
我已经看到了如何在堆栈溢出(即)上执行类似操作,但没有一个适合这个确切的示例。

到并展平到:

const data=[{“一月”:120,“二月”:283.5,“三月”:10,“四月”:233.92,“五月”:327.78,“六月”:190.74,“七月”:10,“八月”:10,“九月”:10,“十月”:10,“十一月”:10,“十二月”:10}]
const result=[].concat(…data.map(Object.entries))
console.log(结果)
到以下位置并按以下方式展平:

const data=[{“一月”:120,“二月”:283.5,“三月”:10,“四月”:233.92,“五月”:327.78,“六月”:190.74,“七月”:10,“八月”:10,“九月”:10,“十月”:10,“十一月”:10,“十二月”:10}]
const result=[].concat(…data.map(Object.entries))

console.log(result)
由于您从后端获得的是一个对象而不是一个数组,因此除了循环对象的属性并将值推送到新数组中之外,我找不到其他解决方案。 看起来是这样的:

var newData = [];
Object.keys(data[0]).forEach(function(month) {
    newData.push[month, data[0][month]];
});

由于您从后端获得的是一个对象而不是一个数组,因此除了循环对象的属性并将值推送到一个新数组中之外,我找不到其他解决方案。 看起来是这样的:

var newData = [];
Object.keys(data[0]).forEach(function(month) {
    newData.push[month, data[0][month]];
});

实现这一点的经典方法是:

var data = [
   {
     "Jan": 120,
     "Feb": 283.5,
     "Mar": 10,
     "Apr": 233.92,
     "May": 327.78,
     "Jun": 190.74,
     "Jul": 10,
     "Aug": 10,
     "Sep": 10,
     "Oct": 10,
     "Nov": 10,
     "Dec": 10
   }
];
var dataArry = new Array();
for(month in data[0]){
  dataArry[dataArry.length] = [month,data[0][month]];
}

在上面的代码中,
dataArry
数组
格式保存对象数据。

实现这一点的经典方法是:

var data = [
   {
     "Jan": 120,
     "Feb": 283.5,
     "Mar": 10,
     "Apr": 233.92,
     "May": 327.78,
     "Jun": 190.74,
     "Jul": 10,
     "Aug": 10,
     "Sep": 10,
     "Oct": 10,
     "Nov": 10,
     "Dec": 10
   }
];
var dataArry = new Array();
for(month in data[0]){
  dataArry[dataArry.length] = [month,data[0][month]];
}

在上面的代码中,
dataArry
Array
格式保存对象数据。

他不是在要求扁平结构吗?所以我想
data.map(Object.entries)
可以吗?如果你问我的话,这仍然是一个足够有效的答案,所以我投了更高的票。然而,在这个问题中,结果是平坦的,因为它不包含一个包裹项目的子数组。哦,对了,我错过了。所以他实际上是在要求一个扁平的结构。他不是在要求一个扁平的结构吗?所以我想
data.map(Object.entries)
可以吗?如果你问我的话,这仍然是一个足够有效的答案,所以我投了更高的票。然而,在这个问题中,结果是平坦的,因为它不包含一个包裹项目的子数组。哦,对了,我错过了。所以他实际上是在要求一个扁平的结构。我猜
Object.keys(数据[0])
代替
Object.keys(数据)
。但不确定,在这个案子上你是对的。更新。Ori Drori的解决方案更优雅一些,我想
Object.keys(数据[0])
Object.keys(数据)
更有效。但不确定,在这个案子上你是对的。更新。Ori Drori的解决方案更优雅一点