如何比较多个值并显示错误

时间:2014-03-25 06:22:07

标签: javascript

看看这个:

var a1 = 1;
var a2 = 2;
var a3 = 5;
var a4 = 2;
.
.
var a100 = 7;

我说过,这样的100个变量。我想比较这些变量,如果任何两个或两个以上的变量具有相似的值,则显示错误。我不想这样做很长时间:

if((a1 == a2) || (a1 == a3) || ... || (a1 == a100))
{
  //do something
}
if((a2 == a1) || (a2 == a3) || ... || (a2 == a100))
{
  //do something
}

请建议更短的方法。

P.S:变量仅包含整数值。

2 个答案:

答案 0 :(得分:-1)

使用正则表达式

if (/^(something|nothing|anything|everything)$/.exec('jesus')) alert('Who cares?');​

或相反:

/^(something|nothing|anything|everything)$/.exec('jesus')||alert('Who cares?');

[更新]更短; - )

if (/^(some|no|any|every)thing$/.exec('jesus')) alert('Who cares?');​

答案 1 :(得分:-1)

这就是数组的用途。

var a = new Array();
a[0] = 1;
a[1] = 2;
a[2] = 5;
a[3] = 2

var found = false;
for(i = 0;a.length > i;++i)
{
  for(j = i+1; j < a.length;++i)
  {
    if(a[i] != a[j])
    {
      found = true;
      //do something
    }
  }
}
if(!found)
{
  // no dupes, do something else.
}

没有数组:

var a1 = 1; 
...

var a100 = 30;

var found = false;
for(i = 1;100 >= i; ++i)
{
  for(j = i+1;100 >= j;++j)
  {
    if( eval('a' + i + ' != a' + j) ) //yuck, but it should work.
    {
      found = true;
      // do something.
    }
  }
}
if(!found)
{
  //no dupes. do something else.
}