首页 > 解决方案 > 如何从对象数组创建哈希对象

问题描述

我们有一个这种格式的 Input 对象

 var data = [{
      'name':'ABC',
      'age' : 23
 },{
     'name': 'PQR',
      'age' : 34
  },{
    'name': 'SQR',
    'age' : 33
}]

我们必须将 name 的值作为下面给出的“键”。我会非常感谢你。

输出数据

var data = {
   'ABC' :{
      'age' : 23
    },
   'PQR' : {
      'age' : 34
   },
   'SQR' :{
     'age' : 33
   }
 }

标签: javascriptarraysjsonobjectjavascript-objects

解决方案


您可以使用.reduce()来获取所需的哈希对象:

let data = [
  {'name':'ABC', 'age' : 23},
  {'name': 'PQR', 'age' : 34},
  {'name': 'SQR', 'age' : 33}
];

let result = data.reduce((r, {name, ...rest}) => (r[name] = rest, r) , {});

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }


推荐阅读