javascript - jquery.inArray() 函数不起作用

标签 javascript jquery

我有一个数组,如下

       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',但它们并不相等。

http://jsfiddle.net/jbabey/kgYSe/

关于javascript - jquery.inArray() 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12306015/

相关文章:

jquery - 删除动态输入字段后,Datetimepicker 未正确调用/绑定(bind)

javascript - AJAX .done() 未按预期工作

javascript - react 与 react DOM 混淆

javascript - 如何使 contenteditable div 产生智能引号而不是哑引号?

javascript - 为什么这个弹出窗口在 IE 上失败?

jquery - 在嵌套列表上应用 jquery-ui droppable

javascript - 如何在 Angular 4 中使用 *ngFor 实现自定义过滤器管道?

javascript - 将带撇号的字符串传递给 javascript 函数

javascript - 我可以让自动布局 js 在 canvas/pixijs 上工作吗

Javascript 字符计数器帮助