У меня есть пара объектов для сред (envList
) и команд (teamsList
), например:
const envList = {
dev: "DEV",
sit: "SIT",
uat: "UAT",
qa: "QA",
prod: "PROD"
};
const teamsList = {
a: "Team A",
b: "Team B",
c: "Team C",
d: "Team D"
};
Я зацикливаюсь на них, чтобы показать их (вроде) таблицы:
<div className="App">
{Object.keys(teamsList).map((key, i) => (
<div className="team" key={i}>
<span className="teamname">{teamsList[key]}</span>
{Object.keys(envList).map((key, i) => (
<span className="env-th-cell" key={key}>
{envList[key]}
</span>
))}
</div>
))}
</div>
Примечание. Выше приведен JSX, но на самом деле это не проблема React. Просто вложение карт по командам и средам.
Генерация вывода, такого как
Team A DEV SIT UAT QA PROD
Team B DEV SIT UAT QA PROD
Team C DEV SIT UAT QA PROD
Team D DEV SIT UAT QA PROD
Мне нужно добавить класс CSS (.red
), чтобы выделить env для любой команды на основе следующего redTeams
массива:
const redTeams = [
{
envIndex: 0,
team: "Team A"
},
{
envIndex: 0,
team: "Team B"
},
{
envIndex: 4,
team: "Team B"
}
{
envIndex: 3,
team: "Team C"
},
{
envIndex: 4,
team: "Team C"
}
];
, если в redTeams
присутствует team
и envIndex
, я хочу добавить класс в span для этой среды. В команде redTeams может быть несколько записей для команды.
Team A DEV(red) SIT UAT QA PROD
Team B DEV(red) SIT UAT QA PROD (red)
Team C DEV SIT UAT QA(red) PROD
Team D DEV SIT UAT QA PROD(red)
Приведенный выше вывод предназначен для представления, там нет (красного), но класс добавлен к span
Вот песочница https://codesandbox.io/s/pwjxy82j5x?fontsize=14
Некоторые советы по подходу будут полезны и оценены