我想检查名为"foo"
的数组中是否存在"Array"
,但$.inArray
始终返回-1
。为什么它会返回-1
,我该如何解决?
以下是jsFiddle中的代码:
var Array = []
Array.push({'test':'fuu','url':'sdfsdfsdf'});
Array.push({'test':'qsgbfdsbgsdfbgsfdgb','url':'sdfssffbgsfdbgdfsdf'});
if($.inArray('fuu',Array) != -1) alert('present');
else alert('absent');
alert($.inArray('fuu',Array));
答案 0 :(得分:3)
'fuu'
实际上不在数组中,它是数组内部对象的值。我担心你需要更复杂的检查。我也不会使用Array
作为变量名称,因为它是Array
对象的名称,但显然它不是保留字?不确定。
var arr = [];
...
var found = false;
$.each(arr, function () {
if (this.test === 'fuu') {
found = true;
return false;
}
});
if (found) alert('present');
答案 1 :(得分:3)
您正在将哈希推入阵列
Array.push({'test':'fuu','url':'sdfsdfsdf'});
然后测试一个String。
$.inArray('fuu',Array)
如果您添加Array.push('fuu'),那么您的测试将会有效。