看看这个:
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:变量仅包含整数值。
答案 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.
}