繁体   English   中英

带动态密钥的 Object 的访问密钥名称

[英]Access key name of Object with dynamic key

我有这个对象数组:

persons = [{Jon: 32}, {Paul: 35}, {Peter: 29}];

我怎样才能从上面的数组到下面的数组?

persons = [
  {name: 'Jon', age: 32},
  {name: 'Paul', age: 35},
  {name: 'Peter', age: 29},
];

const persons: {[key: string]: number}[] = [
           {Jon:32},
           {Paul:35},
           {Peter:29}
];

var a = persons
        .map(person => Object.keys(person)
                             .reduce(
                              (pv: {name?: string, age?: number}, cv: string) => {
                                 pv.name = cv;
                                 pv.age = person[cv];
                                 return pv;
                              },
                              {}));
console.log(a);

另一个看起来更干净的选项:

 var persons = [{ Jon: 32 }, { Paul: 35 }, { Peter: 29 }]; var list = persons.map(p => { return { name: Object.keys(p)[0], age: Object.values(p)[0] }; }); console.log(list);

 var persons = [{Jon: 32}, {Paul: 35}, {Peter: 29}]; var newPersons = []; persons.forEach(function(i){ var key = Object.keys(i)[0]; var item = {}; item[key] = i[key] newPersons.push(item); }) console.log(newPersons);

简洁 Typescript 版

const p =[{ Jon: 32 }, { Paul: 35 }, { Peter: 29 }];

console.log( p.map(x=>({ name:Object.keys(x)[0],age: Object.values(x)[0] })) )

代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM