Как проверить, передается ли логическое значение в виде строки? - PullRequest
0 голосов
/ 20 декабря 2018

Так что в приведенном ниже коде, если я передам ancillaryProductInd как булев код, работает, но когда я передаю его как строку, он не работает.В моем понимании приведенный ниже код должен работать только тогда, когда я передаю «ложное» строковое значение и выбрасываю ошибку на логическое значение.Любая идея, в чем здесь проблема?

main.ts

запрос

var rxInfos = [{
  "ancillaryProductInd": "false",
  "indexID": "eyJrZXkiOiIEOHdpNUpNWmR3PT0ifQ=="
}]


function subQuestionsHandler(rxInfos, data) {
  const subQuestionArray = [];
  rxInfos.forEach((rxInfo) => {
    const subQuestion = {
      question: []
    };
    if (rxInfo.ancillaryProductInd !== undefined && rxInfo.ancillaryProductInd === "false") {
      subQuestion.question = data;
      subQuestionArray.push(subQuestion);
    }
  });
  return subQuestionArray;
}

subQuestionsHandler(rxInfos, [{
  some data
}]);

1 Ответ

0 голосов
/ 20 декабря 2018

Ваш пример кода работает, как и ожидалось, со строковым значением «false» и не запускает блок if при использовании логического значения.Смотрите мой пример:

var rxInfos = [
  {
    ancillaryProductInd: "false",
    indexID: "eyJrZXkiOiIEOHdpNUpNWmR3PT0ifQ=="
  },
  {
    ancillaryProductInd: false,
    indexID: "eyJrZXkiOiIEOHdpNUpNWmR3PT0ifQ=="
  }
];

function subQuestionsHandler(rxInfos, data) {
  const subQuestionArray = [];
  rxInfos.forEach(rxInfo => {
    const subQuestion = {
      question: []
    };
    if (
      rxInfo.ancillaryProductInd !== undefined &&
      rxInfo.ancillaryProductInd === "false"
    ) {
      console.log("no error");
      subQuestion.question = data;
      subQuestionArray.push(subQuestion);
    } else {
      console.log("throw error");
    }
  });
  return subQuestionArray;
}

subQuestionsHandler(rxInfos, [
  {
    test: ""
  }
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...