我有3个值,我想比较f,g和h.我有一些代码来检查它们是否彼此相等,并且它们都不为空.我在网上看过,但找不到任何似乎可以回答我查询的内容.目前我正在以下列方式检查代码......
if(g == h && g == f && f == h && g != null && f != null && h != null)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
这是漫长的啰嗦,我可能会添加更多的值,所以我只是想知道是否有更快的方法来检查没有值是否为空并且所有值彼此相等?
在此先感谢您的帮助.
Gab*_*oli 42
你可以缩短它
if(g === h && g === f && g !== null)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
对于比较多个值(无论其数量)的实际方法
(灵感来自/简化@Rohan Prabhu答案)
function areEqual(){
var len = arguments.length;
for (var i = 1; i< len; i++){
if (arguments[i] === null || arguments[i] !== arguments[i-1])
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
并称之为
if( areEqual(a,b,c,d,e,f,g,h) )
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
JMM*_*JMM 11
适用于任意数量的物品.
if ([f, g, h].every(function (v, i, a) {
return (
v === a[0] &&
v !== null
);
})) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)
if ([f, g, h].every((v, i, a) =>
v === a[0] &&
v !== null
)) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)
Oll*_*etz 11
关于什么
(new Set([a,b,c])).size === 1
Run Code Online (Sandbox Code Playgroud)
我建议您编写一个函数,在其中给您一个要比较的所有值的数组,然后遍历该数组以相互比较这些值:
function compareAllValues(a) {
for (var i = 0; i < a.length; i++) {
if (a[i] === null) { return false }
for (var j = 0; j < i; j++) {
if (a[j] !== a[i]) { return false }
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
我认为应该就是这样:)
归档时间: |
|
查看次数: |
30708 次 |
最近记录: |