Это хороший вариант использования для Array.prototype.reduce , поскольку вы хотите преобразовать массив во что-то, что является объектом в вашем случае:
const newObj = response.reduce((acc, curr) => {
acc[curr.Name] = curr.Value;
return acc;
}, {});
Этопреобразовал бы:
const response = [
{
'Name': 'given_name',
'Value': 'Mike'
},
{
'Name': 'family_name',
'Value': 'Brown'
}
]
в:
{
'given_name': 'Mike',
'family_name': 'Brown'
}
Теперь, если вы хотите изменить наименование ключа, вы можете использовать какое-то отображение:
const NameMapping = {
given_name: 'firstName',
family_name: 'lastName'
};
const response = [
{
'Name': 'given_name',
'Value': 'Mike'
},
{
'Name': 'family_name',
'Value': 'Brown'
}
]
const newObj = response.reduce((acc, curr) => {
if (NameMapping[curr.Name] === undefined)
return acc;
acc[NameMapping[curr.Name]] = curr.Value;
return acc;
}, {});
Итак, ваш newObj
будет выглядеть так:
{
firstName: 'Mike',
familyName: 'Brown'
}