我有以下代码,需要检查一个值是否作为数组键存在。
我似乎无法生成密钥的index
,即使它确实存在,任何帮助都会很棒。
代码:
var run = { // store the actions to trigger
block : function() {
console.log('Blocking…');
},
warning : function() {
console.log('Warning…');
}
};
console.log( $.inArray( 'warning' , run ) );
据我所知,warning
位于run{}
内,应返回index
1
。
为什么上面找不到上述内容(index
返回为-1
)。
感谢阅读。
答案 0 :(得分:6)
run
不是数组(它只是一个普通对象),所以它没有索引。即使block
位于warning
之前,对象也是无顺序的,因此您不能说run
的索引为1。
要检查对象是否有特定密钥,只需检查:
if ('warning' in run) {...}
或者:
if (run.warning) {...}
答案 1 :(得分:1)
您可以简单地使用:
console.log(run.warning);
如果你得到一个值,你就找到了你的功能。
至于索引 - run
不是数组,它是一个对象(或一个哈希,或一个地图,取决于你何时来)。对象的属性没有订单,并且每次迭代时都不保证它们保持相同的顺序。