簡體   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