JavaScript数组indexOf()方法不起作用

时间:2015-08-13 18:50:33

标签: javascript arrays indexof

我正在尝试在数组中找到一个项目。我的变量double只得到-1,所以在我的数组中找不到该项,但该项肯定在数组中。

currhandles=findall(0,'type','figure');

如果找到该项,我不想将其添加到数组中。

2 个答案:

答案 0 :(得分:1)

您将包含单个元素(字符串)的(内部)数组推入(外部)数组,但随后您将从外部数组中搜索字符串的索引。那不行。换句话说,问题很可能是这样的:

geschmack.push([inhalt]);

为什么那些方括号?你可能想要这个:

geschmack.push(inhalt);

如果你想要看到它,你的数组最终会看起来像这样:

[ ["filter1=eigenschaft1"], ["filter2=eigenschaft2"] ]

但你并没有搜索["filter1=eigenschaft1"];您正在搜索"filter1=eigenschaft1",因此当然无法找到它。或者你可以改变这一行:

 a = sortiment.indexOf([inhalt]);

但说实话,这一切似乎有点复杂。

答案 1 :(得分:0)

你得到-1因为当你写var sortiment = [];时意味着你在运行时没有在数组中找到它.IndexOf(something)

这是一个参考:http://www.w3schools.com/jsref/jsref_indexof_array.asp

function filterOptions(eigenschaft, filter){
    inhalt = filter + " = " + eigenschaft;
    console.log(inhalt);
    console.log(sortiment[0]);
    switch(filter) {
        case "sortiment":
            sortiment.push(inhalt);//remove [ ]
            break;
        case "geschmack":
            geschmack.push(inhalt);
            break;
        case "kategorie":
            kategorie.push(inhalt);
            break;
        default:
            console.log("FAIL");
    }
    a = sortiment.indexOf(inhalt); //look for index after .push
    console.log(a);
}