【问题标题】:Return boolean if a string is less than a certain number JavaScript如果字符串小于某个数字 JavaScript,则返回布尔值
【发布时间】:2018-01-04 14:31:04
【问题描述】:

我对如何让函数一次返回真/假感到困惑。

我有要拆分的字符串。如果有“。”并检查它是否小于 3,然后将循环直到最后一个值,如果它为真则返回,否则如果为假。

如果其中一个值超过250,则返回false

const splitString = "123.123.1".split(".");
for (var i = 0; i < 3; i++) {
  var prefix = parseInt(splitString[i]);
  console.log(stringCheck(prefix))
}

function stringCheck(inputString) {
  if (inputString < 250) {
    return true
  } else {
    return false
  }
}

【问题讨论】:

  • 我试图显示字符串是否不大于 250。如果不大于 250,它将显示一次 true,否则如果大于 250,它将显示 false
  • 您不能同时返回truefalse。您可以返回truefalse
  • 我相信你的意思是,如果一个值大于 250,你想立即返回 false,如果没有值大于 250,则返回 true

标签: javascript


【解决方案1】:

如果字符串没有更大的 250,我试图显示

看起来你在处理复杂的事情。

您不需要循环所有内容。每当你发现有问题时,只需返回

function check(){
const splitString = "123.123.1".split(".");
for(var k in splitString){
   if(splitString[k] > 250){
    return false;
   }
  }
 return true;
}

【讨论】:

    【解决方案2】:

    您可以使用Array.prototype.some 函数(或.every)。我猜在这种情况下,您正在检查每个值是否小于 250,因此您可以这样做:

    const splitString = "123.123.1".split(".");
    var allBelow = splitString.every(n => {
        var num = parseInt(n); // TODO decide how you want strings parsed into numbers
        return num <= 250;
    })
    

    allBelow 是真还是假,取决于每个值是否

    【讨论】:

      【解决方案3】:

      出错时只需要返回false

      function stringCheck(inputString) {
        let  parts = inputString.split(".");
        if (parts.length !== 3) return false;
        for (var i = 0; i < parts.length; i++) {
          if (parseInt(parts[i]) > 250) {
            return false;
          }
        }
        return true;
      }  
      
      let str = "123.249.1";
      console.log(stringCheck(str))
      str = "123.255.1";
      console.log(stringCheck(str))

      【讨论】:

        【解决方案4】:

        将值保存在数组中并使用数组的一些功能:

        const splitString = "123.251.1".split(".");
        var exceeds = [];
        for (var i = 0; i < 3; i++) {
          var prefix = parseInt(splitString[i]);
          exceeds.push(stringCheck(prefix));
        }
        console.log(exceeds);
        console.log(exceeds.some(val => val === false));
        
        function stringCheck(inputString) {
          if (inputString < 250) {
            return true
          } else {
            return false
          }
        }

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-10-08
          • 1970-01-01
          • 2023-03-20
          • 1970-01-01
          • 2017-12-20
          • 2023-01-26
          • 1970-01-01
          • 2012-01-27
          相关资源
          最近更新 更多