Получить строку из названия клуба и ФИО игрока
[
{
_id: ObjectId("63ce4976d52b8e0552f39645"),
name: 'Спартак',
competition: {
date: '15.01.2023',
matches: [
{
number: 1,
name: 'Спартак-Динамо',
players: [
{ fio: 'Потапов К.С.', goalcount: 0 },
{ fio: 'Бочаров М.П.', goalcount: 1 },
{ fio: 'Петров А.И.', goalcount: 0 },
{ fio: 'Сергеев К.О.', goalcount: 2 },
{ fio: 'Любимов И.А.', goalcount: 0 }
]
},
{
number: 2,
name: 'Спартак-Урал',
players: [
{ fio: 'Потапов К.С.', goalcount: 1 },
{ fio: 'Бочаров М.П.', goalcount: 0 },
{ fio: 'Петров А.И.', goalcount: 1 },
{ fio: 'Сергеев К.О.', goalcount: 0 },
{ fio: 'Ковалёв М.А.', goalcount: 2 }
]
}
]
}
},
{
_id: ObjectId("63ce4976d52b8e0552f39646"),
name: 'Рубин',
competition: {
date: '10.01.2023',
matches: [
{
number: 1,
name: 'Рубин-Ростов',
players: [
{ fio: 'Бородаев И.С.', goalcount: 0 },
{ fio: 'Шевчук М.А.', goalcount: 3 },
{ fio: 'Бродский К.И.', goalcount: 0 },
{ fio: 'Потапов К.И.', goalcount: 0 },
{ fio: 'Михайлов Г.А.', goalcount: 1 }
]
},
{
number: 2,
name: 'Рубин-Краснодар',
players: [
{ fio: 'Бородаев И.С.', goalcount: 0 },
{ fio: 'Шевчук М.А.', goalcount: 1 },
{ fio: 'Громилов А.П.', goalcount: 4 },
{ fio: 'Потапов К.И.', goalcount: 0 },
{ fio: 'Михайлов Г.А', goalcount: 0 }
]
}
]
}
}
]
Как мне получить строку из названия клуба и ФИО игрока?
Ответы (2 шт):
Автор решения: Irshat Khuzin
→ Ссылка
Вы можете использовать цикл for или forEach, чтобы перебрать массив клубов, затем вложенный цикл для перебора массива матчей в каждом клубе, и еще один вложенный цикл для перебора массива игроков в каждом матче.
const clubs = [
{
name: 'Спартак',
competition: {
date: '15.01.2023',
matches: [
{
number: 1,
name: 'Спартак-Динамо',
players: [
{ fio: 'Потапов К.С.', goalcount: 0 },
{ fio: 'Бочаров М.П.', goalcount: 1 },
{ fio: 'Петров А.И.', goalcount: 0 },
{ fio: 'Сергеев К.О.', goalcount: 2 },
{ fio: 'Любимов И.А.', goalcount: 0 }
]
},
{
number: 2,
name: 'Спартак-Урал',
players: [
{ fio: 'Потапов К.С.', goalcount: 1 },
{ fio: 'Бочаров М.П.', goalcount: 0 },
{ fio: 'Петров А.И.', goalcount: 1 },
{ fio: 'Сергеев К.О.', goalcount: 0 },
{ fio: 'Ковалёв М.А.', goalcount: 2 }
]
}
]
}
},
{
name: 'Рубин',
competition: {
date: '10.01.2023',
matches: [
{
number: 1,
name: 'Рубин-Ростов',
players: [
{ fio: 'Бородаев И.С.', goalcount: 0 },
{ fio: 'Шевчук М.А.', goalcount: 3 },
{ fio: 'Бродский К.И.', goalcount: 0 },
{ fio: 'Потапов К.И.', goalcount: 0 },
{ fio: 'Михайлов Г.А.', goalcount: 1 }
]
},
{
number: 2,
name: 'Рубин-Краснодар',
players: [
{ fio: 'Бородаев И.С.', goalcount: 0 },
{ fio: 'Шевчук М.А.', goalcount: 1 },
{ fio: 'Громилов А.П.', goalcount: 4 },
{ fio: 'Потапов К.И.', goalcount: 0 },
{ fio: 'Михайлов Г.А', goalcount: 0 }
]
}
]
}
}
];
var club_player_strings = [];
clubs.forEach(function(club) {
club.competition.matches.forEach(function(match) {
match.players.forEach(function(player) {
club_player_strings.push("Club name: " + club.name + " Player name: " + player.fio);
});
});
});
console.log(club_player_strings);
Автор решения: Bakhtiyar
→ Ссылка
Нужно пробежаться по массиву циклом forEach (или на ваш выбор), создать функцию которая вернет массив с игроками каждой команды (для легкости понимания кода) и перебрать массив с игроками.
const clubs = [
{
_id: "63ce4976d52b8e0552f39645",
name: 'Спартак',
competition: {
date: '15.01.2023',
matches: [
{
number: 1,
name: 'Спартак-Динамо',
players: [
{ fio: 'Потапов К.С.', goalcount: 0 },
{ fio: 'Бочаров М.П.', goalcount: 1 },
{ fio: 'Петров А.И.', goalcount: 0 },
{ fio: 'Сергеев К.О.', goalcount: 2 },
{ fio: 'Любимов И.А.', goalcount: 0 }
]
},
{
number: 2,
name: 'Спартак-Урал',
players: [
{ fio: 'Потапов К.С.', goalcount: 1 },
{ fio: 'Бочаров М.П.', goalcount: 0 },
{ fio: 'Петров А.И.', goalcount: 1 },
{ fio: 'Сергеев К.О.', goalcount: 0 },
{ fio: 'Ковалёв М.А.', goalcount: 2 }
]
}
]
}
},
{
_id: "63ce4976d52b8e0552f39646",
name: 'Рубин',
competition: {
date: '10.01.2023',
matches: [
{
number: 1,
name: 'Рубин-Ростов',
players: [
{ fio: 'Бородаев И.С.', goalcount: 0 },
{ fio: 'Шевчук М.А.', goalcount: 3 },
{ fio: 'Бродский К.И.', goalcount: 0 },
{ fio: 'Потапов К.И.', goalcount: 0 },
{ fio: 'Михайлов Г.А.', goalcount: 1 }
]
},
{
number: 2,
name: 'Рубин-Краснодар',
players: [
{ fio: 'Бородаев И.С.', goalcount: 0 },
{ fio: 'Шевчук М.А.', goalcount: 1 },
{ fio: 'Громилов А.П.', goalcount: 4 },
{ fio: 'Потапов К.И.', goalcount: 0 },
{ fio: 'Михайлов Г.А', goalcount: 0 }
]
}
]
}
}
];
clubs.forEach(club => {
let info = getClubInfo(club)
info.forEach(players => {
players.forEach(player => {
console.log(player.name, player.club)
})
})
})
function getClubInfo(club) {
let res = [];
club.competition.matches.forEach((info, index) => {
let player = [];
info.players.forEach(el => {
player.push(
{
name: el.fio,
club: info.name,
}
)
})
res[index] = player;
})
return res;
}