[英]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.