Javascript - 使数组索引 toLowerCase() 不起作用

Posted

技术标签:

【中文标题】Javascript - 使数组索引 toLowerCase() 不起作用【英文标题】:Javascript - Making Array Index toLowerCase() not working 【发布时间】:2016-07-10 20:52:03 【问题描述】:

我正在尝试将所有数组索引设为小写字符串,但它不起作用。我在这里查看了其他答案并尝试了他们的解决方案,例如在添加 toLowerCase 之前使用 toString() 但它不起作用,这很奇怪。

我创建了一个问题的 jsfiddle here。

JS:

$(colorArr).each(function(i, item) // loop thru each of elements in colorArr and make lowercase + trim

    if(colorArr[i] !== undefined) // check if colorArr index undefined
      
      colorArr[i].toString().toLowerCase().trim(); // FIX HERE
      /* TRIED - DIDN'T WORK!
      colorArr[i].toLowerCase().trim();
      */
       
);

【问题讨论】:

why does the trim doesn't really trim? trim not working in my case的可能重复 @juhana 这与trim() 无关,即使它在代码中,我只询问toLowerCase() 解决方案是一样的:你申请 toLowerCase 和 trim 但没有对结果做任何事情。 【参考方案1】:

我更新了你的小提琴

https://jsfiddle.net/af91r2cq/6/

colorArr[i] = colorArr[i].toString().toLowerCase().trim(); // FIX HERE

你的路真的很近;)

【讨论】:

比较另一个变量checkedAttr,当两者都是字符串数组时,为什么它适用于checkedAttr 而不是colorArr【参考方案2】:

你需要重新设置值

应该是

colorArr[i] = colorArr[i].toString().toLowerCase().trim(); // FIX HERE

或者干脆

colorArr = colorArr.map(function(value) return value ? value.toLowerCase().trim() : ""; );

【讨论】:

【参考方案3】:

将数组中所有定义的值更改为小写的另一种方法是使用jQuery.map 函数,如下所示:

colorArr = $.map(colorArr, function(item, i) 
  if(item !== undefined) 
    return item.toString().toLowerCase().trim();
  
);

【讨论】:

以上是关于Javascript - 使数组索引 toLowerCase() 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

javascript 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。你可以假设每个输入wo

Django 模板语言 - 带有 Javascript 索引的 Python 数组

为啥 putchar、toupper、tolow 等采用 int 而不是 char?

javascript根据索引删除数组的元素

Javascript - 根据行索引删除数组索引

当我只更新该数组的一个索引时,javascript数组两个索引值都得到更新