javascript - 在javascript中,如何比较数字

  显示原文与译文双语对照的内容

我有两个数字包含每一个from 1 to 6 digits我想比较他们使用JavaScript和放一个百分比根据他们的匹配。

比较应该从左到右进行。

例如:


if 6D matching then 100% ==> Example: (value_1: 987456, value_2: 987456) 


if 5D matching then 90% ==> Example: (value_1: 987450, value_2: 987456)


if 4D matching then 80% ==> Example: (value_1: 987400, value_2: 987456)


if 3D matching then 60% ==> Example: (value_1: 987000, value_2: 987456)


if 2D matching then 40% ==> Example: (value_1: 980000, value_2: 987456)


else 0% ==> Example: (value_1: 010101, value_2: 987456)



希望我清楚,你能给我一个解决方案我怎么能在函数中做到?谢谢你

时间:

你可以简单地取数字的差,如果差是0,那么取空字符串,否则就是差的长度/顺序。

保持数组中的百分比与索引的顺序相同。


let per = [100, 90, 80, 60, 40]


calcPer = (num1, num2) => per[(Math.abs(num1 - num2) || '').toString().length] || 0;



console.log(calcPer(987456, 987456))


console.log(calcPer(987456, 987450))


console.log(calcPer(987456, 987400))


console.log(calcPer(987456, 987000))


console.log(calcPer(987456, 900000))

首先将数字转换为字符串,并遍历它们。


let number1 = 12345 +""


let number2 = 12346 +""


let percentageMaps = ["0%","0%","40%","60%","80%","90%","100%"]



function getPercentage(number1, number2) {


 counter = 0;


 for (var i = 0; i < number1.length; i++) {



 if (number1.charAt(i) == number2.charAt(i)) {


 counter++;


 }



 }


 return percentageMaps[counter]


}



console.log(getPercentage(number1, number2))

你应该执行如下操作:


let value_1 = 123456


let value_2 = 123000



let percentage = 100


while (percentage > 0 && value_1 !== value_2) {


 value_1 = Math.floor(value_1/10)


 value_2 = Math.floor(value_2/10)


 if (percentage > 80) percentage -= 10


 else if (percentage > 40) percentage -= 20


 else percentage = 0


}


console.log(percentage)

希望这个有帮助

  • 将数字转换为字符串(string,string )

  • 拆分一个字符串大长度(构造一个新的>实例)?string1.split('')

  • 循环string的每个素

  • 将计数器初始化为0

  • 检查string2的元素是否存在于string1 if ( string1.indexOf ( string2[i] ) >-1 ) {count+=1}

  • 最后为百分比(计数/string1.length )* 100


var a = String(839123)


var b = String(829156)


var count = 0;


for (let i = 0 ; i < b.length; i++) {


 if (a.indexOf(b[i]) > -1) {


 count += 1;


 }


}


alert(count); //Match Count`



...