2

"foo"という名前の配列に存在するかどうかを確認したいのです"Array"が、$.inArray常に を返します-1。なぜ戻ってき-1て、どうすれば解決できますか?

jsFiddleの私のコードは次のとおりです。

var Array = []
Array.push({'test':'fuu','url':'sdfsdfsdf'});
Array.push({'test':'qsgbfdsbgsdfbgsfdgb','url':'sdfssffbgsfdbgdfsdf'});
if($.inArray('fuu',Array) != -1) alert('present');
else alert('absent');
alert($.inArray('fuu',Array));
4

2 に答える 2

3

'fuu'実際には配列内にあるのではなく、配列内のオブジェクトの値です。申し訳ありませんが、より複雑なチェックが必要です。Arrayそれはオブジェクトの名前であるため、変数名としても使用しませんArrayが、どうやらそれは予約語ではありませんか? わからない。

var arr = [];
...
var found = false;
$.each(arr, function () {
   if (this.test === 'fuu') {
      found = true;
      return false;
   }
});
if (found) alert('present');
于 2012-09-29T15:41:47.953 に答える
3

ハッシュを配列にプッシュしています

Array.push({'test':'fuu','url':'sdfsdfsdf'});

次に、文字列をテストします。

$.inArray('fuu',Array)

Array.push('fuu') を追加すると、現在のテストが機能します。

于 2012-09-29T15:44:54.867 に答える