#javascript #arrays #reactjs #typescript
#javascript #массивы #reactjs #typescript
Вопрос:
Я написал код с множеством логик if else. Я пытаюсь улучшить свой код. Кто-нибудь может предложить мне несколько лучших вариантов. Я пытаюсь распечатать данные на основе условий: functionOne и secondFunction — это методы, которые будут возвращать компонент в нескольких местах. Суть моего кода такова: если длина myFirstDataArray больше 3, тогда выведите значение secondFunction , или еще раз проверьте длину myFirstDataArray и так далее.
const functionOne = (data) => {
return (
<SummaryOfValues
data={data}
></SummaryOfValues>
);
};
const secondFunction = (data) => {
return (
<ListOfValues
data={data.info}
></ListOfValues>
);
};
{
myFirstDataArray amp;amp; myFirstDataArray.length >= 3 ? (
<>
<>
{resultedDataArray
.slice(0, 3)
.map((data: any) => ({ secondFunction(data); }))}
</>
</>
) : (
<>
<>
{resultedDataArray
.slice(0, resultedDataArray.length)
.map((data: any) => ({ secondFunction(data); }))}
</>
{myFirstDataArray amp;amp; myFirstDataArray.length === 1 ? (
<>
{resultedDataArray
.slice(myFirstDataArray.length)
.map((data: any) => ({ functionOne(data); }))}
</>
) : null}
{myFirstDataArray amp;amp; myFirstDataArray.length === 2 ? (
<>
{resultedDataArray
.slice(myFirstDataArray.length, myFirstDataArray.length 1)
.map((data: any) => ({ functionOne(data); }))}
</>
) : null}
</>
);
}
Ответ №1:
Как вы относитесь к этому решению?
const functionOne = (data) => {
return (
<SummaryOfValues
data={data}
></SummaryOfValues>
);
};
const secondFunction = (data) => {
return (
<ListOfValues
data={data.info}
></ListOfValues>
);
};
{
myFirstDataArray amp;amp; myFirstDataArray.length > 0 (
<>
<>
{resultedDataArray
.slice(0, 3)
.map((data: any) => ({ secondFunction(data); }))}
</>
{myFirstDataArray.length < 3 ? (
<>
{resultedDataArray
.slice(myFirstDataArray.length - 1)
.map((data: any) => ({ functionOne(data); }))}
</>
) : null}
</>
);
}
Комментарии:
1. Я с нетерпением жду возможности удалить столько условного рендеринга, сколько смогу удалить.
2. Я обновил код. Пожалуйста, дайте мне знать, что вы об этом думаете.