在Javascript中将带空格的字符串数组转换为小写,然后在Webkit中搜索失败
我正在尝试编写一段代码,它接受一个字符串数组,该数组带有包含项名称和项的空格,并在其中搜索字符串str。只要我不首先尝试将数组转换为小写,这样就可以捕获搜索字符串的所有可能情况,代码就可以正常工作。附加的JSFIDLE中的代码在Firefox中运行良好,但在WebKit或IE中则不行。有人能提供一些见解吗 //项名称数组,0包含字符串 //函数searchArray将在字符串数组strArray中搜索字符串str //这似乎创建了相同的输出,但在Firefox或Webkit中都不起作用: //如果阵列包含电池,该功能将返回正极位置 //如果找到id,则显示消息 //如果未找到str,则显示消息 试试这个:在Javascript中将带空格的字符串数组转换为小写,然后在Webkit中搜索失败,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在尝试编写一段代码,它接受一个字符串数组,该数组带有包含项名称和项的空格,并在其中搜索字符串str。只要我不首先尝试将数组转换为小写,这样就可以捕获搜索字符串的所有可能情况,代码就可以正常工作。附加的JSFIDLE中的代码在Firefox中运行良好,但在WebKit或IE中则不行。有人能提供一些见解吗 //项名称数组,0包含字符串 //函数searchArray将在字符串数组strArray中搜索字符串str //这似乎创建了相同的输出,但在Firefox或Webkit中都不起作用: //如
var lowerCaseItems = $.map(items, function(n,i){return n.toLowerCase();});
在null/window上下文上调用函数,并将项作为参数传递给函数。因此,传递toLowerCase函数将不起作用,因为它必须在jQuery.map不起作用的字符串对象上调用。尝试以下操作:
var lowerCaseItems = $.map(items, function(n,i){return n.toLowerCase();});
在null/window上下文上调用函数,并将项作为参数传递给函数。因此,传递toLowerCase函数将不起作用,因为它必须在字符串对象上调用,而jQuery.map不能这样做。Firefox非常宽松: 从JavaScript 1.6开始,Firefox中也可以使用字符串实例方法,但不是字符串对象上ECMAScript标准的一部分,用于将字符串方法应用于任何对象:
这就是为什么String.toLowerCase在FF中工作,但严格来说它不是规范的一部分,不应该在其他任何地方工作。Firefox非常宽容: 从JavaScript 1.6开始,Firefox中也可以使用字符串实例方法,但不是字符串对象上ECMAScript标准的一部分,用于将字符串方法应用于任何对象:
这就是String.toLowerCase在FF中工作的原因,但严格来说,它不是规范的一部分,不应该在其他任何地方工作。您没有正确使用$.map函数。它需要一个带有2个参数的回调函数。请参阅并尝试以下操作:
var lowerCaseItems = $.map(items,
function(item, index) {
return item.toLowerCase();
});
它在Chrome中工作。您没有正确使用$.map函数。它需要一个带有2个参数的回调函数。请参阅并尝试以下操作:
var lowerCaseItems = $.map(items,
function(item, index) {
return item.toLowerCase();
});
它在Chrome中工作。@NathanielBannister如果您需要代码:$.mapitems,functionx{return x.toLowerCase;};:@NathanielBannister如果需要代码:$.mapitems,functionx{return x.toLowerCase;};:
contains = searchArray("string", lowerCaseItems);
alert(contains);
if ($('#noItems').length) {
$('#emptyCart').show();
}
if (contains == -1) {
$('#noString').show();
}
//else
else {
alert("String Found");
}
var lowerCaseItems = $.map(items, function(n,i){return n.toLowerCase();});
var lowerCaseItems = $.map(items,
function(item, index) {
return item.toLowerCase();
});