Я бы использовал Object.entries
на входе, отобразил бы вложенный объект, затем вызвал Object.fromEntries
, чтобы преобразовать его снова:
const input = { name: 'Bill', lastname: 'Smith'};
const newObj = Object.fromEntries(
Object.entries(input).map(
([key, value]) => ([key, { value }])
)
);
console.log(newObj);
Object.fromEntries
- это довольно новый метод, поэтому для старых браузеров следует либо включить полифилл, либо использовать что-то вроде .reduce
:
const input = { name: 'Bill', lastname: 'Smith'};
const newObj = Object.entries(input).reduce(
(a, [key, value]) => {
a[key] = { value };
return a;
},
{}
);
console.log(newObj);