Javascript 如何检查两个数字是否以相同的数字开头

Javascript 如何检查两个数字是否以相同的数字开头,javascript,Javascript,我需要检查两个数字是否以相同的数字开头,比如startsWith,但对于数字 像 将a转换为String,方法在Strings上可用。 注意:您可以显式选择将b转换为字符串,但JavaScript将隐式转换 const a=567, b=5; log(字符串(a).startsWith(b))将a转换为String,因为方法在Strings上可用。 注意:您可以显式选择将b转换为字符串,但JavaScript将隐式转换 const a=567, b=5; log(字符串(a).startsW

我需要检查两个数字是否以相同的数字开头,比如startsWith,但对于数字

a
转换为
String
,方法在
Strings
上可用。 注意:您可以显式选择将
b
转换为
字符串
,但JavaScript将隐式转换

const
a=567,
b=5;
log(字符串(a).startsWith(b))
a
转换为
String
,因为方法在
Strings
上可用。 注意:您可以显式选择将
b
转换为
字符串
,但JavaScript将隐式转换

const
a=567,
b=5;
log(字符串(a).startsWith(b))将其转换为字符串

a.toString().startsWith(6)

您当前的变量是一个数字,它没有startsWith方法。startsWith方法对字符串有效。所以您需要进行转换。

将其转换为字符串

a.toString().startsWith(6)


您当前的变量是一个数字,它没有startsWith方法。startsWith方法对字符串有效。因此您需要进行转换。

您可以先尝试将数字转换为字符串:

设a=567;
设b=5;

console.log(a.toString().startsWith(b.toString())
您可以先尝试将数字转换为字符串:

设a=567;
设b=5;

console.log(a.toString().startsWith(b.toString())
两种可选的
String
toString()

let
a=567,
b=5;
log(`${a}`.startsWith(b));

console.log((''+a).startsWith(b))
字符串和toString()的两种可选解决方案,只是为了全面:

let
a=567,
b=5;
log(`${a}`.startsWith(b));

console.log((''+a).startsWith(b))为了完整起见,您可以使用数学进行比较。但这有点牵扯其中

  • 要比较两个任意整数,需要将它们设置为一个共同的大小,即数字的10次方
  • 要得到它,您需要提取数字的以10为底的对数,只取整数部分:log10567是
    2.75
    ,您只需要
    2
    。而log10 5是
    0.70
    ,您需要
    0
  • 当你有每个的指数时,你就可以通过从第一个指数中减去第二个指数来得到减少第一个数字的大小:
    2-0=0
  • 通过将整数除以3中常见指数的幂10,将数字末尾的数字去掉。所以
    Math.floor(567/10**2)
    给了我们
    5
    • 除数需要进一步限制为不低于
      0
      。否则,10的负幂将增加该数字:
      567/10**-2
      56700
      ,我们不想这样做
  • 当两个数字达到相同的大小后,比较它们
  • 函数startsWithInteger(a,b){
    //获取每个数字的10次幂
    常数指数a=数学地板(数学对数10(a));
    常数指数b=数学楼层(数学日志10(b));
    //获取幅值以比较两者。上限为1(10**0)
    让comparativeMagnitude=10**数学最大值((指数A-指数B),0);
    //以整数除法获得'a'的“开始”
    //按10的公幂得到相同的位数
    常数startA=数学楼层(a/比较震级);
    返回startA==b;
    }
    log(startsWithInteger(567,2))//错误的
    log(startsWithInteger(267,2))//符合事实的
    log(startsWithInteger(567,50))//错误的
    log(startsWithInteger(567,56))//符合事实的
    log(startsWithInteger(5675670))//错误的
    
    log(startsWithInteger(567567))//true
    为完整起见,您可以使用数学进行比较。但这有点牵扯其中

  • 要比较两个任意整数,需要将它们设置为一个共同的大小,即数字的10次方
  • 要得到它,您需要提取数字的以10为底的对数,只取整数部分:log10567是
    2.75
    ,您只需要
    2
    。而log10 5是
    0.70
    ,您需要
    0
  • 当你有每个的指数时,你就可以通过从第一个指数中减去第二个指数来得到减少第一个数字的大小:
    2-0=0
  • 通过将整数除以3中常见指数的幂10,将数字末尾的数字去掉。所以
    Math.floor(567/10**2)
    给了我们
    5
    • 除数需要进一步限制为不低于
      0
      。否则,10的负幂将增加该数字:
      567/10**-2
      56700
      ,我们不想这样做
  • 当两个数字达到相同的大小后,比较它们
  • 函数startsWithInteger(a,b){
    //获取每个数字的10次幂
    常数指数a=数学地板(数学对数10(a));
    常数指数b=数学楼层(数学日志10(b));
    //获取幅值以比较两者。上限为1(10**0)
    让comparativeMagnitude=10**数学最大值((指数A-指数B),0);
    //以整数除法获得'a'的“开始”
    //按10的公幂得到相同的位数
    常数startA=数学楼层(a/比较震级);
    返回startA==b;
    }
    log(startsWithInteger(567,2))//错误的
    log(startsWithInteger(267,2))//符合事实的
    log(startsWithInteger(567,50))//错误的
    log(startsWithInteger(567,56))//符合事实的
    log(startsWithInteger(5675670))//错误的
    console.log(startsW
    
    let a = 567
    
    let b = 5
    
    a.startsWith(b) should return true, but it is returning not a function.