日期:2014-05-16  浏览次数:20364 次

简单问题我怎么懵住了呢?
<script>
var Arr = {
  'aaa' : '111',
  'bbb' : '222',
  ......
}

var Query = 'aaa'; //这是动态传来的一个值
if (这里我想判断Arr[Query]存在,并且是数组的第一个值) {
  //do things
}
</script>


那么怎么判断Arr[Query]是数组Arr的第一个值呢

------解决方案--------------------
判断是否存在可以用 

if(Query in Arr) {
 //...
}


Arr不是一个数组,Arr是一个对象,是Object类型的。js中的Obj可以当作map使用,类似其他语言中的字典、关联数组等。

aaa和bbb就是Arr这个对象的属性了,没有顺序之分。因此,不存在楼主说的Arr的第一个值之说。
------解决方案--------------------

<script>
var Arr = {
  'aaa' : '111',
  'bbb' : '222'
}

var Query = 'aaa'; //这是动态传来的一个值

var s = false;
for (var n in Arr)
{
if(Query in Arr)
s = true;
break;
}
alert("判断Arr[Query]存在,并且是对象的第一个值:"+s);
</script>

------解决方案--------------------
上边的不对,这个是正确是,论坛怎么不能修改自己的帖子

<script>
var Arr = {
  'aaa' : '111',
  'bbb' : '222'
}

var Query = 'aaa'; //这是动态传来的一个值

var s = false;
for (var n in Arr)
{
if(Query==n)
s = true;
break;
}
alert("判断Arr[Query]存在,并且是对象的第一个值:"+s);
</script>