示例:我们有数字1122。我想检查给定的数字是否多次包含数字1。在这种情况下,它应该返回true

我需要代码灵活,它必须使用任何数字,例如334056604177等。

最佳答案

您可以通过调用toString方法或串联轻松地“强制” JS将任何数字值强制转换为字符串。

var someNum = 1122;
var oneCount = (someNum + '').split('1').length;


通过将数字连接为空字符串,变量将被强制转换为字符串,因此您可以使用所有喜欢的字符串方法(.match.substring.indexOf,...)。
在此示例中,我选择了在每个'1'字符上拆分字符串,计数并使用结果数组的长度。如果长度> 2,则您需要知道什么。

var multipleOnes = ((someNum + '').split('1').length > 2);//returns a bool, true in this case


为了回应您的评论,使其变得灵活-编写一个简单的函数即可:

function multipleDigit(number, digit, moreThan)
{
    moreThan = (moreThan || 1) + 1;//default more than 1 time, +1 for the length at the end
    digit = (digit !== undefined ? digit : 1).toString();
    return ((someNum + '').split(digit).length > moreThan);
}
multipleDigit(1123, 1);//returns true
multipleDigit(1123, 1, 2);//returns false
multipleDigit(223344,3);//returns 3 -> more than 1 3 in number.

关于javascript - 如何检查数字是否多次使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14093632/

10-14 19:40
查看更多