简体   繁体   English

如果字符串小于特定数字,则返回布尔值

[英]Return boolean if a string is less than a certain number JavaScript

I'm confused about how to get the function to return true/false at once. 我对如何使函数立即返回true / false感到困惑。

I have string I will split. 我有弦我将拆分。 If there's a "." 如果有“。” and check if it less than 3 then will loop until the last value then return if it true else if false. 并检查它是否小于3,然后将循环直到最后一个值,然后返回是否为true,否则返回false。

If one of the values exceeds 250, it will return false 如果值之一超过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 } } 

Im trying to display if the string does not have any greater 250 我正在尝试显示字符串是否没有更大的250

Looks like you over complicated things. 看起来像您处理复杂的事情。

You need not to loop everything. 您无需循环所有内容。 Whenever you find something wrong, just return 每当发现问题时,请返回

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

You can use Array.prototype.some function (or .every ). 您可以使用Array.prototype.some函数(或.every )。 I guess in this case you're checking if every value is less than 250, so you might do this: 我猜在这种情况下,您正在检查每个值是否小于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 will be true or false, depending on if every value is <= 250. allBelow将为true或false,这取决于每个值是否<= 250。

Save the values in an array and use the some functionality of array: 将值保存在数组中,并使用数组的某些功能:

 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 } } 

You need to only return false when error 您只需在错误时返回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)) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM