如何比较2对数字?

时间:2017-11-18 17:26:07

标签: javascript node.js

如何有效地比较2对数字?

Javascript中[a, b] > [c, d]等同于a > c || a === c && b > d吗?

===========

编辑问题:Javascript如何评估[a, b] > [c, d]表达式?

4 个答案:

答案 0 :(得分:2)

  

“[a,b]&gt; [c,d]在Javascript中等同于&gt; c || a === c&amp;&amp; b&gt; d?” < / p>

不,您获得的正确结果是因为您使用的是一位数字。见下文。

  

“Javascript如何评估[a,b]&gt; [c,d]表达式?”

因为您没有比较数字,所以它们将两个数组转换为字符串。因此,将数值替换为变量,我们可以得到:

"1,2" > "0,3"

只要您始终拥有一位数字,这就有效。

试试这个:

[10, 2] > [2, 1]

突然失败了。这是因为"10,2""2,1"的词汇比较将第二个值放在更大的位置。

答案 1 :(得分:0)

您可以使用任意长度的函数。

function isGreater(aa, b) {
    return aa.some((_, i, a) =>  a[i - 1] === b[i - 1] && a[i] > b[i]);
}

console.log(isGreater([1, 2], [3, 5]));
console.log(isGreater([3, 2], [3, 5]));
console.log(isGreater([3, 6], [3, 5]));
console.log(isGreater([4, 2], [3, 5]));

答案 2 :(得分:0)


对于您的问题,您应该使用您在问题中添加的解决方案:public final class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() {} public static Singleton getInstance() { return INSTANCE; } } ,而且效率不高。

如果您多次重复同一任务,请为其创建一个函数:

a > c || a === c && b > d


编辑:我的回答的第一部分显然是错误的,@ rockStar的答案在这方面是正确的,所以我刚刚删除了我的解释。

答案 3 :(得分:0)

您正在尝试进行嵌套比较,例如字符串。你可能只是喜欢;

[1,3].join() > [1,2].join() // <- true

或丑陋但通过胁迫

[1,3]+"" > [1,2] // <- true