Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript数组到对象的转换_Javascript_Arrays_Angular_Typescript - Fatal编程技术网

Javascript数组到对象的转换

Javascript数组到对象的转换,javascript,arrays,angular,typescript,Javascript,Arrays,Angular,Typescript,请告知如何使用typescript/java脚本将以下对象数组转换为指定类型的对象: [ { "name": "Alex", "edu": [ { "degree": "Grad", "year": 2007 }, { "degree": "Undergrad", "year": 2005 } ] }, { "name": "Ali",

请告知如何使用typescript/java脚本将以下对象数组转换为指定类型的对象:

[
  {
    "name": "Alex",
    "edu": [
      {
        "degree": "Grad",
        "year": 2007
      },
      {
        "degree": "Undergrad",
        "year": 2005
      }
    ]
  },
  {
    "name": "Ali",
    "edu": [
      {
        "degree": "Grad",
        "year": 2010
      },
      {
        "degree": "UnderGrad",
        "year": 2008
      }
    ]
  },
  {
    "name": "Nik",
    "edu": [
      {
        "degree": "Grad",
        "year": 2009
      },
      {
        "degree": "UnderGrad",
        "year": 2007
      }
    ]
  }
]
致:

请使用扩展运算符或任何其他运算符帮助转换对象。谢谢大家!

您可以使用
.map()
.reduce()
方法:

let data=[{“name”:“Alex”,“edu”:[{“degree”:“PhD”,“year”:2012},{“degree”:“Grad”,“year”:2007},{“degree”:“underad”,“year”:2005},{“name”:“Ali”,“edu”:[{“degree”:“grade”,“year”:2012},{“degree”:“Grad”,“year”:2010},{“name”:“Nik”,“edu”:“{“degrease”:“degreat”,“year”:2011},{“degread”,“year”:“Grad”,“year”:2009};
让结果=data.map(
o=>Object.assign(
{name:o['name']},
减少((a,c)=>(a[c['degree']]=c['year'],a),{})
)
);
控制台日志(结果)
.as控制台包装{max height:100%!important;top:0;}
您可以使用
.map()
.reduce()
方法:

let data=[{“name”:“Alex”,“edu”:[{“degree”:“PhD”,“year”:2012},{“degree”:“Grad”,“year”:2007},{“degree”:“underad”,“year”:2005},{“name”:“Ali”,“edu”:[{“degree”:“grade”,“year”:2012},{“degree”:“Grad”,“year”:2010},{“name”:“Nik”,“edu”:“{“degrease”:“degreat”,“year”:2011},{“degread”,“year”:“Grad”,“year”:2009};
让结果=data.map(
o=>Object.assign(
{name:o['name']},
减少((a,c)=>(a[c['degree']]=c['year'],a),{})
)
);
控制台日志(结果)
。作为控制台包装{最大高度:100%!重要;顶部:0;}
[   { name: "Alex", Grad: 2007, Undergrad: 2005 },
    { name: "Ali", Grad: 2010, Undergrad: 2008 },
    { name: "Nik", Grad: 2009, Undergrad: 2007 }

];