Javascript js更改json对象的结构

Javascript js更改json对象的结构,javascript,arrays,json,Javascript,Arrays,Json,我有这样一个数组: let array = [ {1: { "date": "2014-04-23 00:00:00", "volumetrie": "22458" }}, {2: { "date": "2014-05-02 00:00:00", "volumetrie": "30585" }}, {3: { "date": "2014-03-27 00:

我有这样一个数组:

let array =  [
      {1: {
        "date": "2014-04-23 00:00:00",
        "volumetrie": "22458"
      }},
      {2: {
        "date": "2014-05-02 00:00:00",
        "volumetrie": "30585"
      }},
      {3: {
        "date": "2014-03-27 00:00:00",
        "volumetrie": "49536"
      }}
    ]
let array =  [
      {
        "date": "2014-04-23 00:00:00",
        "volumetrie": "22458"
      },
      {
        "date": "2014-05-02 00:00:00",
        "volumetrie": "30585"
      },
      {
        "date": "2014-03-27 00:00:00",
        "volumetrie": "49536"
      }
    ]
但我需要这样:

let array =  [
      {1: {
        "date": "2014-04-23 00:00:00",
        "volumetrie": "22458"
      }},
      {2: {
        "date": "2014-05-02 00:00:00",
        "volumetrie": "30585"
      }},
      {3: {
        "date": "2014-03-27 00:00:00",
        "volumetrie": "49536"
      }}
    ]
let array =  [
      {
        "date": "2014-04-23 00:00:00",
        "volumetrie": "22458"
      },
      {
        "date": "2014-05-02 00:00:00",
        "volumetrie": "30585"
      },
      {
        "date": "2014-03-27 00:00:00",
        "volumetrie": "49536"
      }
    ]
我试图改变这一点,比如:

array.forEach(function(e){
          newData.push(e);
        });
但这是行不通的。不支持推送

下一次尝试是:

let newData = {};
        array.forEach(function(e){
          newData = {...newData, ...e};
        });

没有成功。您知道如何获得结果吗?

假设数组中的对象始终具有一个可枚举属性,您可以使用map和Object.values执行此操作:

实例:

让数组=[ {1: { 日期:2014-04-23 00:00:00, 容量:22458 }}, {2: { 日期:2014-05-02 00:00:00, 容量:30585 }}, {3: { 日期:2014-03-27 00:00:00, 容量:49536 }} ]; array=array.mapobj=>Object.valuesobj[0]; console.logarray; .作为控制台包装{ 最大高度:100%!重要;
} 假设数组中的对象始终具有一个可枚举属性,则可以使用map和Object.values执行此操作:

实例:

让数组=[ {1: { 日期:2014-04-23 00:00:00, 容量:22458 }}, {2: { 日期:2014-05-02 00:00:00, 容量:30585 }}, {3: { 日期:2014-03-27 00:00:00, 容量:49536 }} ]; array=array.mapobj=>Object.valuesobj[0]; console.logarray; .作为控制台包装{ 最大高度:100%!重要;
} 您只需将数组中的每个项映射到新项,即原始项的第一个键的值:

让数组=[ { 1: { 日期:2014-04-23 00:00:00, 容量:22458 }}, { 2: { 日期:2014-05-02 00:00:00, 容量:30585 }}, { 3: { 日期:2014-03-27 00:00:00, 容量:49536 }} ]; let formatted=array.mapv=>{for let k in v返回v[k];};
console.logformatted 您只需将数组中的每个项映射到新项,即原始项的第一个键的值:

让数组=[ { 1: { 日期:2014-04-23 00:00:00, 容量:22458 }}, { 2: { 日期:2014-05-02 00:00:00, 容量:30585 }}, { 3: { 日期:2014-03-27 00:00:00, 容量:49536 }} ]; let formatted=array.mapv=>{for let k in v返回v[k];};
console.logformatted 您可以获得对象值的平面数组

让数组=[{1:{date:2014-04-23 00:00:00,volumetrie:22458},{2:{date:2014-05-02 00:00:00,volumetrie:30585},{3:{date:2014-03-27 00:00:00,volumetrie:49536}], 结果=array.flatMapObject.values; console.logresult;
.as console wrapper{max height:100%!important;top:0;}您可以获得对象值的平面数组

让数组=[{1:{date:2014-04-23 00:00:00,volumetrie:22458},{2:{date:2014-05-02 00:00:00,volumetrie:30585},{3:{date:2014-03-27 00:00:00,volumetrie:49536}], 结果=array.flatMapObject.values; console.logresult; .作为控制台包装{最大高度:100%!重要;顶部:0;}尝试以下操作:

常数数据=[ {1: { 日期:2014-04-23 00:00:00, 容量:22458 }}, {2: { 日期:2014-05-02 00:00:00, 容量:30585 }}, {3: { 日期:2014-03-27 00:00:00, 容量:49536 }} ]; 常量newData=[]; 对于let i=0;i 常数数据=[ {1: { 日期:2014-04-23 00:00:00, 容量:22458 }}, {2: { 日期:2014-05-02 00:00:00, 容量:30585 }}, {3: { 日期:2014-03-27 00:00:00, 容量:49536 }} ]; 常量newData=[]; 对于let i=0;i您的初始数组结构将返回未捕获的SyntaxError:意外标记':'抱歉,我现在更改了第一个数组。您更新的输入似乎是要提取嵌套对象值的对象数组。在数组中的任何对象上都有多个属性吗?它们是否都应该提取到展平数组中?是的,它们具有多个属性,并且也应该在展平数组中。我只想丢失第一级的键。您的初始数组结构将返回未捕获的语法错误:意外标记“:“抱歉,我现在更改了第一个数组。您更新的输入似乎是要提取嵌套对象值的对象数组。在数组中的任何对象上都有多个属性吗?它们是否都应该提取到展平数组中?是的,它们具有多个属性,并且也应该在展平数组中。我只想松开第一关的钥匙。哦,现在很好。这是一个绝对平坦的东西。我希望数组末尾有3个单独的对象。@FishWave,有了给定的数据,每个项目中只有一个对象,就得到了三个对象。@FishWave-单击“运行代码段”,它不会提供完全平坦的内容。直到smooshMap从未出现过。哦,现在很好。这提供了一个绝对平坦的内容。我希望在数组的末尾有3个单独的对象。@FishWave,带有给定的数据和一个o
对象在每个项中都有三个对象。@FishWave-单击“运行代码段”,它不会提供完全平坦的内容。除非smooshMap从未使用此代码,否则我只返回三个对象中每个对象的第一个项……根据给定的数据,我假设此代码中每个数组项只有一个项,我只得到了三个对象中每个对象的第一个条目……根据给定的数据,我假设每个数组项只有一个条目将发布相同的答案:将发布相同的答案: