首页 > 解决方案 > 如何从对象数据创建新的对象名称?

问题描述

我需要从现有对象创建新的数据对象。

我有一个如下所示的对象:

var peopleObject = {
    "123": { id: 123, name: "dave", age: 23 },
    "456": { id: 456, name: "chris", age: 23 }
};

重建这个对象后,我需要得到:

var peopleByNames = {
    "dave": 123,
    "chris": 456
};

标签: javascript

解决方案


您可以使用从对象中获取值列表,Object.values然后根据这些值填充对象。idname

var peopleObject = {
    "123": { id: 123, name: "dave", age: 23 },
    "456": { id: 456, name: "chris", age: 23 }
};


var peopleByNames = Object.values(peopleObject).reduce(function(obj, value){
  obj[value.name] = value.id;
  return obj;
}, {});


console.log(peopleByNames);


推荐阅读