我有一个数组,如下
var nameIDHashMap = [];
nameIDHashMap.push({
key: name,
value: xmlLength
});
startToEnd.push({
key: $(this).attr("startFrom"),
value: $(this).attr("endTo")
});
我正在尝试使用 inArray() 函数,如下所示
var variablestart = startToEnd[0].key;
alert("The variable Start is :"+variablestart);
var toEnd;
if(jQuery.inArray(variablestart,nameIDHashMap) > -1) {
alert('found');
}
if ($.inArray(variablestart, nameIDHashMap) != -1)
{
alert("Found");
// toEnd = startToEnd[connectWindow].value
}
else
alert("Fail");
我不知道为什么总是调用 else 循环。没有任何 if 循环被调用。两个数组都存在相同的 key 。请告诉我哪里做错了。谢谢!
最佳答案
variablestart
是数组中元素的属性,而不是数组中的元素。
var nameIDHashMap = [];
nameIDHashMap.push({
key: 'foo',
value: 'bar'
});
$.inArray(nameIDHashMap[0].key, nameIDHashMap); // this is not an element, -1
$.inArray(nameIDHashMap[0], nameIDHashMap); // this is an element, 0
您实际上是在尝试将对象 { key: 'foo', value: 'bar' }
等同于字符串 'foo'
,但它们并不相等。
关于javascript - jquery.inArray() 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12306015/