javascript indexOn ne fonctionne pas comme prévu avec array

Je suis -1 à partir de myarray.indexOf(element) même lorsque l'élément semble être dans myarray.

Voici quelques extraits de code:

function createChangeRecord( old_array, new_array ) {
    var nds = new_array.slice(0,new_array.length);
    var el, idx;
    if (...) {
        ...
    } else if ( old_array.length==new_array.length ) {
        for ( var i=0; i<old_array.length; i++ ) {
            el = old_array[i];
            idx = nds.indexOf(el);
            if ( idx!=(-1) ) {
                ...
            } else {
                var a = "el: " + el + "; nds: " + nds + "; nds.indexOf(el): " + nds.indexOf(el);
                alert( a );
                ...
            }
        }
        ...
    }
    ...
}

L'alerte m'indique que les ad ne contiennent en effet des el mais l'alerte en cas d'incendie lors de l'idx==-1, ce qui ne devrait être vrai quand nds ne contient pas de el.

Je sais que je n'ai pas donné assez d'informations pour déterminer le problème dans mon cas, mais peut-être que quelqu'un peut me dire quelques raisons qui peuvent provoquer ce problème?

Les réponses à une question similaire a suggéré d'utiliser jQuery inArray() au lieu de indexOf, mais je veux savoir pourquoi indexOf ne fonctionne pas. D'autres ont suggéré que indexOf est pour les chaînes de caractères, pas des tableaux, mais ce n'est pas vrai de la de documents en ligne que je peux trouver.

source d'informationauteur baixiwei