Javascript 检查一个数字是否包含另一个数字的最佳方法
例如,如果数字752包含数字5?最好的检查方法是什么?转换为字符串或分割为单个数字?转换为字符串并使用indexOfJavascript 检查一个数字是否包含另一个数字的最佳方法,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+'').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);