如何从对象数组创建哈希对象

时间:2018-11-05 07:58:57

标签: javascript arrays json object javascript-objects

我们有一个这种格式的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
   }
 }

2 个答案:

答案 0 :(得分:3)

您可以使用table.redraw(true); 来获取所需的哈希对象:

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

答案 1 :(得分:1)

您也可以使用forEach()来简化代码:

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

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

console.log(result);