У меня есть компонент, который отображает некоторые данные из массива.Мне нужно отфильтровать этот массив в зависимости от условия.Я не знаю, правильно ли фильтровать массив, или просто удалить ненужный элемент из этого массива.
Компонент выглядит так:
const PassengerCardBasedOnRoute = ({
passengerCardId,
isAddToMyPassengersSuccess,
unassignedDropOffPassengers
}) => {
const filteredData = filterByParam =>
filterByParam.filter(obj =>
Object.keys(obj).some(key =>
String(obj[key])
.toLowerCase()
.includes(searchParam.toLowerCase()),
),
);
const componentToRenderBasedOnParams = info => (
<View key={info.id}>
{isAddToMyPassengersSuccess && info.id === passengerCardId && (
<PassengersAdded name={info.name} id={info.id} />
)}
<PassengersInfo
id={info.id}
name={info.name}
/>
</View>
);
const showFeedbackIfNoLength = data => {
if (size(filteredData(data))) {
filteredData(data).map(info => componentToRenderBasedOnParams(info));
}
};
return (
<>
<OptionsModal>{<AllPassengersOptionsModal />}</OptionsModal>
<View>
{unassignedDropOffPassengers && showFeedbackIfNoLength(unassignedDropOffPassengers)}
</View>
</>
);
};
Массив данных, над которым я пытаюсь работать, это unassignedDropOffPassengers
.Что вы можете увидеть выше.И ключевая функция для работы заключается в следующем:
const componentToRenderBasedOnParams = info => (
<View key={info.id}>
{isAddToMyPassengersSuccess && info.id === passengerCardId && (
<PassengersAdded name={info.name} id={info.id} />
)}
<PassengersInfo
id={info.id}
name={info.name}
/>
</View>
);
Допустимое условие:
{isAddToMyPassengersSuccess && info.id === passengerCardId && (
<PassengersAdded name={info.name} id={info.id} />
)}
Что я должен сделать, так это то, что при выполнении вышеуказанного условия я долженудалить предмет из unassignedDropOffPassengers
.Или просто отфильтруйте его, как здесь, где я применяю фильтр:
const filteredData = filterByParam =>
filterByParam.filter(obj =>
Object.keys(obj).some(key =>
String(obj[key])
.toLowerCase()
.includes(searchParam.toLowerCase()),
),
);
Что я хочу знать, так это как этого добиться / адаптировать его с моим кодом.Исходя из условия, которое я упомянул выше isAddToMyPassengersSuccess && info.id === passengerCardId
.
Элемент в массиве, который мне нужно опустить, соответствует passengerCardId
.
Итак, есть идеи?
РЕДАКТИРОВАТЬ:
Я использую lodash
кстати.