Javascript 检查一个数字是否包含另一个数字的最佳方法

Javascript 检查一个数字是否包含另一个数字的最佳方法,javascript,Javascript,例如,如果数字752包含数字5?最好的检查方法是什么?转换为字符串或分割为单个数字?转换为字符串并使用indexOf (752+'').indexOf('5') > -1 console.log((752+“”).indexOf('5')>-1); console.log((752+“”).indexOf('9')>-1)您可以使用3种方式: 按字符串检查它是否包含: var num = 752; num.toString().indexOf('5') > -1 //return

例如,如果数字752包含数字5?最好的检查方法是什么?转换为字符串或分割为单个数字?

转换为字符串并使用indexOf

(752+'').indexOf('5') > -1
console.log((752+“”).indexOf('5')>-1);
console.log((752+“”).indexOf('9')>-1)您可以使用3种方式:

  • 按字符串检查它是否包含:

    var num = 752;
    num.toString().indexOf('5') > -1 //return true or false - contains or not
    
  • 循环检查

    var f = 2;
    while(num > 0 ){
      if( num % 10 == f){
        console.log("true");
        break;
      }
      num = Math.floor(num / 10); 
    }
    
  • 用正则表达式检查

     num.toString().match(/5/) != null //return true if contains
    
  • 函数checkNumberIfContainsKey(数字、键){
    而(数量>0){
    如果(编号%10==键){
    返回true;
    }
    数字=数学真值(数字/10);
    }
    返回false;
    }
    console.log(
    checkNumberIfContainsKey(19,9),//正确
    checkNumberIfContainsKey(191,9),//真
    checkNumberIfContainsKey(912,9),//true
    checkNumberIfContainsKey(185,9)//false
    );您还可以使用“some”功能。
    像这样的“一些”东西:

        function hasFive(num){
             return num.toString().split("").some(function(item){
              return item === "5";
             }); 
        }
    
    然后你可以称之为:

       hasFive(752)
    
    进一步改进的是,您创建了一个函数,用于获取要检查的数字:

           function hasNumber(num, digit){
                 return num.toString().split("").some(function(item){
                     return item == digit;
                 }); 
            }
    
    然后用类似的方式来称呼它:

    hasNumber(1234,3) //true
    hasNumber(1244,3) //false
    
    这样我们就可以检查任何数字。
    我希望“某些人”会觉得这很有用

    转换为
    字符串
    并使用以下选项之一:

    indexOf()

    包括()


    正在查找数字字符串中的数字。。。在数字字符串或单个数字中查找数字我会将其转换为字符串,并对其进行正则表达式匹配:
    (752).toString().match(/5/)
    您尝试过什么吗?并定义“最佳”。如果所有答案都无效或您仍面临问题,请告知我,以便我可以帮助
    运算符的优先级高于
    +
    ,因此您需要括号才能真正起作用。您的运算符优先级有问题。它应该是
    (752+“”)。indexOf('5')
    ,否则
    “”。indexOf('5')
    将首先计算。正则表达式的效率也会低一个数量级@Nick
    (number + '').indexOf(needle) > -1;
    
    (number + '').includes(needle);