項目名 (item) を含むスペースを含む文字列の配列を取得し、文字列 (str) を検索するコードを作成しようとしています。検索文字列のすべての可能なケースをキャッチできるように、最初に配列を小文字に変換しようとしない限り、コードは正常に機能します。添付の jsfiddle のコードは Firefox では正常に動作しますが、WebKit または IE では動作しません。誰でも洞察を貸してもらえますか?
//項目名の配列、0 には「文字列」が含まれます
var items = new Array('Item Name Contains String', 'This item is missing it');
//関数 searchArray は、文字列の配列 strArray で文字列 str を検索します
function searchArray(str, strArray) {
for (var j = 0; j < strArray.length; j++) {
if (strArray[j].match(str)) return j;
}
return -1;
}
//アイテム配列を小文字に変換して、検索で大文字と小文字を区別しないようにします
//これは Firefox では機能しますが、Webkit では機能しません
var lowerCaseItems = $.map(items, String.toLowerCase);
alert(lowerCaseItems);
//これは同じ出力を作成するように見えますが、Firefox でも Webkit でも機能しません:
alert(items.toString().toLowerCase());
//配列に「battery」が含まれている場合、関数は正の位置を返します
contains = searchArray("string", lowerCaseItems);
alert(contains);
// ID が見つかった場合、メッセージを表示します
if ($('#noItems').length) {
$('#emptyCart').show();
}
// str が見つからない場合、メッセージを表示します
if (contains == -1) {
$('#noString').show();
}
//else
else {
alert("String Found");
}