Ionic 3通过跳过空值从打字稿中的数组过滤

时间:2018-07-30 06:38:30

标签: angular types ionic3

这是我的.ts代码

searchMultiple() {
console.log("clicked!!!!!!")
this.list = this.tripList;
let profileModal = this.modalCtrl.create(SearchModalPage);
profileModal.onDidDismiss(data => {
  console.log(data);
  if (data == null) {
    console.log("inside if")
    this.list = this.tripList;
    // } 
    // if (data.origincity == null && data.destinationcity == null && data.airlines.name == null && data.first_name == null && data.travel_date == null) {
    //   this.list = this.tripList;
  } else {
    console.log("inside else")
    this.list = this.list.filter((item) => {
      if (data.origincity != null && data.destinationcity == null && data.airlines.name == null && data.first_name == null) {

        return (
          item.origincity.toLowerCase().indexOf(data.origincity.toLowerCase())) > -1;

      }
      if (data.origincity == null && data.destinationcity != null && data.airlines.name == null && data.first_name == null) {

        return (
          item.destinationcity.toLowerCase().indexOf(data.destinationcity.toLowerCase())) > -1;

      }
      if (data.origincity == null && data.destinationcity == null && data.airlines.name != null && data.first_name == null) {

        return (
          item.airlines.name.toLowerCase().indexOf(data.airlines.name.toLowerCase())) > -1;

      }
      if (data.origincity == null && data.destinationcity == null && data.airlines.name == null && data.first_name != null) {

        return (
          item.user_name.toLowerCase().indexOf(data.first_name.toLowerCase())) > -1;

      }
      if (data.origincity == null && data.destinationcity == null && data.airlines.name == null && data.first_name == null && data.travel_date != null) {
        return (
          isEqual(item.travel_date, data.travel_date)
        )
      }
      if (data.origincity != null && data.destinationcity != null && data.airlines.name == null && data.first_name == null) {

        return (
          item.origincity.toLowerCase().indexOf(data.origincity.toLowerCase()) ||
          item.destinationcity.toLowerCase().indexOf(data.destinationcity.toLowerCase())) > -1;

      }
      if (data.origincity != null && data.destinationcity != null && data.airlines.name != null && data.first_name == null) {

        return (
          item.origincity.toLowerCase().indexOf(data.origincity.toLowerCase()) ||
          item.destinationcity.toLowerCase().indexOf(data.destinationcity.toLowerCase()) ||
          item.airlines.name.toLowerCase().indexOf(data.airlines.name.toLowerCase())) > -1;

      }
      if (data.origincity != null && data.destinationcity != null && data.airlines.name != null && data.first_name != null) {

        return (
          item.origincity.toLowerCase().indexOf(data.origincity.toLowerCase()) ||
          item.destinationcity.toLowerCase().indexOf(data.destinationcity.toLowerCase()) ||
          item.airlines.name.toLowerCase().indexOf(data.airlines.name.toLowerCase()) ||
          item.user_name.toLowerCase().indexOf(data.first_name.toLowerCase())) > -1;

      }

    });

  }
});
profileModal.present();

}

我有一个过滤器页面作为模型,并且正在获取要过滤的值。 来自过滤器页面的给定值作为另一个数组。过滤器最简单或最简单的方法是什么?

这是我的过滤器数组: {航空公司:{名称:null,徽标:null}, 目的地:无, destinationcity:空, first_name:null, 产地:无, 来源:null, 旅行日期:2018年11月8日星期四00:00:00 GMT + 0530(印度标准时间), user_id:null}

选择任何值后,它将像:

{航空公司:{名称:null,徽标:null}, 目的地:无, destinationcity:空, first_name:null, 来源:“ BAH”, 来源:“巴林”, 旅行日期:2018年11月8日星期四00:00:00 GMT + 0530(印度标准时间), user_id:null}

我想用另一个像这样的数组来过滤该数组:

{航空公司:{name:“ Air India”,徽标:“ ../../ assets / imgs / airindia.png”}, 目的地:“ BAH”, destinationcity:“巴林”, 来源:“ AES”, 来源:“ Aalesund”, rewardamt:“₹450”, travel_date:“ 2019-01-13T04:57:52.584Z”, user_id:“ riya@gmail.com”, user_name:“ Riya”, _id:“ 5b48316f9fb78f16ec5cdc13”}

预先感谢.....

0 个答案:

没有答案