0

ここで説明されているコードを使用しましたが、「for ... in ...」サイクルを実行すると、関数「indexOf」が配列のインデックス位置として取得されます...

コード例:

var the_array=new Array();                  
for (key in the_array){
    console.log(key +"  -  "+the_array[key]);
} 

このコードは、コンソールでこれを示しています。

indexOf  -  function (searchElement /*, fromIndex */ ) {  
    "use strict";  
    if (this == null) {  
       throw new TypeError();  
    }  
    var t = Object(this);  
    var len = t.length >>> 0;  
    if (len === 0) {  
        return -1;  
    }  
    var n = 0;  
    if (arguments.length > 0) {  
        n = Number(arguments[1]);  
        if (n != n) { // shortcut for verifying if it's NaN  
            n = 0;  
        } else if (n != 0 && n != Infinity && n != -Infinity) {  
            n = (n > 0 || -1) * Math.floor(Math.abs(n));  
        }  
    }  
    if (n >= len) {  
        return -1;  
    }  
    var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);  
    for (; k < len; k++) {  
        if (k in t && t[k] === searchElement) {  
            return k;  
        }  
    }  
    return -1;  
}

関数が配列のキーとして表示されないようにするにはどうすればよいですか?

ところで、jquery の inArray 関数を使用できることは知っていますが、この場合、「indexOf」関数を使用したいと思います...

4

1 に答える 1

2

for...inこの理由やその他の理由から、アレイで使用することはお勧めできません。ここで私の答えを参照してください:

配列を含む'for(var item in list)'がJavaScriptで悪い習慣と見なされるのはなぜですか?

于 2012-04-04T11:48:41.240 に答える