我正在尝试编写一段代码,该代码采用包含项目名称(项目)的空格的字符串数组并在其中搜索字符串(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;
}
//将items数组转换为小写,这样搜索不区分大小写
//这适用于Firefox,但不适用于Webkit
var lowerCaseItems = $.map(items, String.toLowerCase);
alert(lowerCaseItems);
//这似乎创建了相同的输出,但在 Firefox 或 Webkit 中都不起作用:
alert(items.toString().toLowerCase());
//如果数组包含“电池”,函数将返回正位置
contains = searchArray("string", lowerCaseItems);
alert(contains);
//如果找到id,显示消息
if ($('#noItems').length) {
$('#emptyCart').show();
}
//如果未找到str,则显示消息
if (contains == -1) {
$('#noString').show();
}
//else
else {
alert("String Found");
}