Используйте map для полных имён, reduce для суммы зарплат и filter для фамилии Rose. Сумма равна 2900; условию по фамилии соответствуют John и Margo.
Работа с массивом: получение полных ФИО, суммирование зарплат и поиск по фамилии
Используйте map для полных имён, reduce для суммы зарплат и filter для фамилии Rose. Сумма равна 2900; условию по фамилии соответствуют John и Margo.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Есть массив объектов, каждый из которых содержит имя персонажа, пол, фамилию и размер зарплаты. Требуется выполнить три операции: собрать массив строк, где каждое значение — полное имя (имя + пробел + фамилия), посчитать суммарную величину зарплат всех элементов и вывести список всех записей, у которых фамилия совпадает с "Rose".
const data = [
{
"charname": "John",
"gender": "Male",
"surname": "Rose",
"salary": 100
},
{
"charname": "Margo",
"gender": "Female",
"surname": "Rose",
"salary": 1200
},
{
"charname": "Lisa",
"gender": "Male", // Возможно опечатка? Должно быть "Female"?
"surname": "Barcley",
"salary": 1600
}
];
Ответ
Используйте map для полных имён, reduce для суммы зарплат и filter для фамилии Rose. Сумма равна 2900; условию по фамилии соответствуют John и Margo.
Решение:
const names = data.map(p => `${p.charname} ${p.surname}`);
const total = data.reduce((sum, p) => sum + p.salary, 0);
const roses = data.filter(p => p.surname === 'Rose');
Имена: John Rose, Margo Rose, Lisa Barcley. Начальный 0 позволяет обработать пустой массив. Salary здесь предполагается числом, иначе нужна валидация. Пол gender не влияет на результат; предположение в комментарии не является основанием менять данные.