簡體   English   中英

如何檢查布爾值是否作為字符串傳遞?

[英]How to check if boolean is passed as string?

因此,在下面的代碼中,如果我通過ancillaryProductInd作為布爾代碼起作用,但是當我將其作為字符串傳遞時,則不起作用。 以我的理解,以下代碼僅應在我傳遞“ false”字符串值並將錯誤引發布爾值時起作用。 知道這里的問題是什么嗎?

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
}]);

您的示例代碼使用字符串值“ 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: ""
  }
]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM