У меня есть список необработанных данных, например, следующий за mockData, и мне нужно сгенерировать их в формате object [], некоторые необязательные пары ключ-значение необходимы из необработанных данных, таких как first, last, state. но некоторые пары ключ-значение являются опцией, подобной псевдониму. В конце концов, мне нужно создать массив объектов с таким же значением ключа, как необработанные данные, и значение какого-либо ключа зависит от значения другого ключа, такого как полное имя, адрес. Есть ли лучший способ для меня сделать это и сделать это более динамично? потому что у меня будет более 20 различных значений ключа, таких как полное имя, адрес, который должен быть построен с помощью некоторой функции, связанной с необработанными данными, я не хочу создавать много полного имени, тип адреса кода
export const mockData: Human[] = [
{
first: 'name1',
last: 'v1',
state: 'ny',
},
{
first: 'name2',
last: 'v2',
state: 'pa',
nickname: 'rocketman',
}]
export interface Human {
first: string;
last: string;
state: string;
nickname?: string;
}
export interface Student extends Human{
fullname: string;
address: string;
}
function setFullName(first: string, last: string): string {
return `${first} ${last}`
}
function setAddress(first: string, last: string, state: string): string {
return `${first} ${last} live a ${state}`
}
function buildStudentData(jsons: Human[]): Student[] {
return jsons.map((json) => <Student> {
first: json.first,
last: json.last,
nickname: json.hasOwnProperty('nickname') ? json.nickname : json.first,
fullname: setFullName(json.first, json.last),
address: setAddress(json.first, json.last, json.state)})
}
console.log(buildStudentData(mockData));