Как использовать es6 каждые для возврата логического значения во вложенном массиве? - PullRequest
0 голосов
/ 26 февраля 2020

Попытка использовать метод every javascript, если у любого indexID есть комбинация firstFillCounter и refillCounter, он должен вернуть retvalue true, его бросок undefined Любая идея, что будет лучше?

main.ts

  private arrayMatch(data) {
        const isCombined = this.validateOrder(data);
        if (isCombined) {
            return Promise.reject(this.errorHandler(request, "First and Refill cant be combined"));
        }
        return isCombined;
    }

    private validateOrder(rxDetails) {
        let isCombined: boolean = false;
         isCombined = rxDetails.every( (o: any) => {
            this.isCombinedFirstandRefill(o.rxInfos);
      });

      return isCombined;
  }

  private isCombinedFirstandRefill(rxInfos) {
      let retVlaue: boolean = false;
      let firstFillCounter: number = 0;
      let refillCounter: number = 0;
      for (const rx of rxInfos) {
          if (rx.firstFillIndicator === "Y" && rx.acceptDigitalFirstFill === "Y") {
              firstFillCounter++;
          } else {
            refillCounter++;
          }
      }
      if (refillCounter > 1 && firstFillCounter > 1) {
          retVlaue = true;
          return retVlaue;
      }
    return retVlaue;
  }

это должно возвращать true и считать неправильный запрос.

const data = [{
    indexID: 1,
    rxInfos: [{
        firstFillIndicator: "Y",
        acceptDigitalFirstFill: "Y",
        rxNumber: "1512"
      },
      {
        firstFillIndicator: "Y",
        acceptDigitalFirstFill: "N",
        rxNumber: "16021"

      }
    ]
  }]

это действительно так, оно должно возвращать false из isCombinedFirstandRefill

  const data1 = [{
    indexID: 2,
    rxInfos: [{
        firstFillIndicator: "Y",
        acceptDigitalFirstFill: "N",
        rxNumber: "1512"
      },
      {
        firstFillIndicator: "N",
        acceptDigitalFirstFill: "N",
        rxNumber: "16021"

      }
    ]
  }
]; 
...