例如,如果数字752包含数字5?什么是最好的检查方式?转换为字符串或分成个别数字?
答案 0 :(得分:6)
转换为字符串并使用indexOf
(752+'').indexOf('5') > -1
console.log((752+'').indexOf('5') > -1);
console.log((752+'').indexOf('9') > -1);

答案 1 :(得分:2)
转换为string
并使用以下选项之一:
indexOf()
:
(number + '').indexOf(needle) > -1;
includes()
:
(number + '').includes(needle);
答案 2 :(得分: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
答案 3 :(得分:0)
function checkNumberIfContainsKey(number, key){
while(number > 0){
if(number%10 == key){
return true;
}
number = Math.trunc(number / 10);
}
return false;
}
console.log(
checkNumberIfContainsKey(19, 9), //true
checkNumberIfContainsKey(191, 9), //true
checkNumberIfContainsKey(912, 9), //true
checkNumberIfContainsKey(185, 9) //false
);
由于该程序的复杂性,可用答案中最有效的解决方案就是O(number of digits)
,如果number = 10235
,则number of digits = 5
答案 4 :(得分:0)
您还可以使用“某些”功能。 像这样的“东西”:
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
这样,我们可以检查任何数字的任何数字。 我希望这样的“某个”人会觉得有用。 :)