2

.indexOf を使用して、配列に文字列が含まれているかどうかを調べようとしています。何かがエラーを引き起こしていますが、何が原因かわかりません。これは本当に単純なことだと思いますが、私はその言語を知らないのでわかりません。どうしたの?

//this code creates an error in IE
var myMines=new Array();
var newMine="22";
var myVar = myMines.indexOf(newMine);   //when I comment out this line, the page does not generate an error
4

6 に答える 6

3

一部の最新のブラウザーに追加される前は、indexOf は、文字列から別の文字列を検索し、開始インデックスを返すためだけに使用される関数でした。空の配列でこの関数を使用しようとしていますが、配列の indexOf 関数をサポートしていないブラウザーで推測しています。

于 2012-04-04T17:47:07.357 に答える
3

偶然、IE 8 (またはそれ以下) を使用していますか? Array.indexOfIE 9 以降、Firefox 3 以降、Chrome 7 以降でのみ動作します。

ソース: http://kangax.github.com/es5-compat-table/

ドキュメントArray.indexOf(サポートしていないブラウザーでこれを実装する機能も含まれています): https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf

于 2012-04-04T17:49:05.990 に答える
1

コードを Firebug コンソール (Firefox 11 を実行) に投稿したところ、動作しました。ここでは配列が「空」であるため、indexOf() は単に -1 を返します。おそらく、あなたのスクリプトは -1 値を処理できないだけです。ただし、このコードはほとんどのブラウザーで機能するはずです。もしかしたら、Chrome の JavaScript 実装でバグを見つけたのかもしれません (^^)。

于 2012-04-04T17:50:44.103 に答える
1

配列を作成して、その中に何かが存在するかどうかを確認しているだけです。

newMine は、空の配列内で検索しようとしている値です。最初に配列を作成してみてください。

于 2012-04-04T17:45:52.110 に答える
1

あなたがすることは基本的に次のとおりです。

  • 配列の作成;
  • 変数の作成;
  • 配列に追加するのを忘れてください。
  • 配列内の nou であるアイテムの位置を配列に問い合わせます。
于 2012-04-04T17:47:58.637 に答える
0

文字列のIndexOf現在のインデックス/位置 (0 ベース) を返します。

var myMines="Hello World";
var myVar = myMines.indexOf('W');
alert(myVar); // Will alert 6 because 'W' is at the 7th position (first index is 0) so index is 6
于 2012-04-04T17:51:16.333 に答える