如何从数组中删除将项目数据呈现在组件中的项目?

时间:2019-02-27 01:23:06

标签: javascript arrays reactjs ecmascript-6 lodash

我有一个组件,可以渲染来自数组的某些数据。我需要根据条件过滤该数组。我不知道过滤数组是正确的方法,还是只是从数组中删除不需要的项目。

该组件如下所示:

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顺便说一句。

0 个答案:

没有答案