Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 很难将字符串数组转换为小写并添加到my函数中。Javascript_Function_Javascript - Fatal编程技术网

Function 很难将字符串数组转换为小写并添加到my函数中。Javascript

Function 很难将字符串数组转换为小写并添加到my函数中。Javascript,function,javascript,Function,Javascript,我有一个搜索字符串数组的函数。除了区分大小写之外,它工作得非常好。我需要它不区分大小写 最简单的方法是让函数将数组转换为小写,这样当函数在数组中执行搜索时,无论大小写如何,都可以找到它 我尝试添加var-array\u-name\u-tolowercase=array\u-name.tolowercase()在我的函数中,这样当调用函数时,它可以在所有数组上工作;如果需要的话 对不起,我没有说清楚,如果是这样的话,请让我知道,我会尽力重新解释。提前谢谢 您不能在数组对象上调用toLowerCas

我有一个搜索字符串数组的函数。除了区分大小写之外,它工作得非常好。我需要它不区分大小写

最简单的方法是让函数将数组转换为小写,这样当函数在数组中执行搜索时,无论大小写如何,都可以找到它

我尝试添加
var-array\u-name\u-tolowercase=array\u-name.tolowercase()在我的函数中,这样当调用函数时,它可以在所有数组上工作;如果需要的话


对不起,我没有说清楚,如果是这样的话,请让我知道,我会尽力重新解释。提前谢谢

您不能在数组对象上调用toLowerCase您需要在数组的单个成员上调用

您需要将数组的元素转换为小写,而不是数组对象本身。我不知道函数内部到底发生了什么,但类似这样:

for(var i = 0; i < arrayName.length; i++) {
    if(arrayName[i].toLowerCase() === "whatever") {
        //Found a match!
    }
}
for(变量i=0;i
发布更多的代码,将更容易提供更精确的解决方案!这是上面的一个例子。

除非对数组进行扩展,否则不能在数组上使用toLowerCase()

将它放在代码中的某个地方,然后从这里开始,您可以在数组中使用它(注意,只有当数组中填充了字符串时)

Array.prototype.toLowerCase=function(){
for(var i=0;i
数组没有
toLowerCase
方法。在遍历数组时,可以对每个字符串创建一个或仅调用toLowerCase

Array.prototype.toLowerCase = function() {
    var i = this.length;
    while ( --i >= 0 ) {
        if ( typeof this[i] === "string" ) {
            this[i] = this[i].toLowerCase();
        }
    }
    return this;
};
对于您发布的代码,您可以更改
var a=(array[i].indexOf(searchlow))

var a = (array[i].toLowerCase().indexOf(searchlow));   

最简单的方法是将大小写混合的数组连接成一个字符串,将其小写,然后将该字符串拆分回一个数组

示例:

var tmp = mcArray.join('~').toLowerCase()
var lcArray = tmp.split('~')

就我个人而言,我发现这样做容易得多:

                array = ["Apples","Oranges","FRUIT"];
                console.log("array: "+array); //array: Apples,Oranges,FRUIT
                arrayString = array.toString();
                arrayLowerString = arrayString.toLowerCase();
                arrayLower = arrayLowerString.split(",");
                console.log("arrayLower: "+arrayLower); //apples,oranges,fruit

使用ES6的另一种方法是使用和

var-arr=['Billie','Jean'];
var arr_lower=arr.map(item=>item.toLowerCase());

控制台日志(arr_下部)向我们展示你函数的代码,这样我们就可以建议如何使它不区分大小写。谢谢大家,整理好了!谢谢嗨,抱歉这么含糊。我在上面贴了一些代码。谢谢,如果任何数组项包含“~”会发生什么?非常愚蠢。。。显然,这会搞乱逻辑。这是假设“~”是一个安全字符。您可以使用任何其他字符。这是有效的,或者您可以简单地将所有三个方法连接成一个
var arrayLowerString=array.toString().toLowerCase().split(“,”)
                array = ["Apples","Oranges","FRUIT"];
                console.log("array: "+array); //array: Apples,Oranges,FRUIT
                arrayString = array.toString();
                arrayLowerString = arrayString.toLowerCase();
                arrayLower = arrayLowerString.split(",");
                console.log("arrayLower: "+arrayLower); //apples,oranges,fruit
function(resp) {
    return this.colors.filter(function(color) {
        return color.toLowerCase() === resp.toLowerCase();
    })[0];
}
array_name_tolowercase = array_name.map(x=>x.toLowerCase)