如何有效地比较2对数字?
Javascript中[a, b] > [c, d]
等同于a > c || a === c && b > d
吗?
===========
编辑问题:Javascript如何评估[a, b] > [c, d]
表达式?
答案 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