Javascript-不区分大小写的数组搜索

Javascript-不区分大小写的数组搜索,javascript,jquery,arrays,regex,Javascript,Jquery,Arrays,Regex,这段代码去掉了所有重复的变量。是否有方法使此函数中的数组搜索不区分大小写 var x=[“AAA”、“AAA”、“bbb”、“bbb”]; 功能唯一(列表){ var结果=[]; $。每个(列表、函数(即){ 如果($.inArray(e,result)=-1)result.push(e); }); 返回结果; } //输出应为AAA,bbb console.log(唯一(x)) 您可以使用仅包含小写项的lookuptable: function unique(arr){ const be

这段代码去掉了所有重复的变量。是否有方法使此函数中的数组搜索不区分大小写

var x=[“AAA”、“AAA”、“bbb”、“bbb”];
功能唯一(列表){
var结果=[];
$。每个(列表、函数(即){
如果($.inArray(e,result)=-1)result.push(e);
});
返回结果;
}
//输出应为AAA,bbb
console.log(唯一(x))

您可以使用仅包含小写项的lookuptable:

function unique(arr){
  const before = new Set, result = [];

  for(const str of arr){
   const lower = str.toLowerCase();
   if(!before.has(lower)){
    before.add(lower);
    result.push(str);
   }
  }
  return result;
}
在一行中:

const unique = arr => (set => arr.filter(el => (lower => !set.has(lower) && set.add(lower))(el.toLowerCase()))(new Set);
  • 您不需要jQuery

  • 使用函数
    findIndex
    并将每个比较元素转换为小写

var x=[“AAA”、“AAA”、“bbb”、“bbb”];
功能唯一(列表){
var结果=[];
list.forEach(函数(e){
if(结果)findIndex(函数(r){
返回r.toLowerCase()==e.toLowerCase();
}) === -1)
结果:推(e);
});
返回结果;
}
console.log(唯一(x))

.as控制台包装{max height:100%!important;top:0;}
只需在所有内容中添加.toLowerCase即可

var x = ["AAA", "aaa", "bbb", "BBB"];

function unique(list) {
  var result = [];
  $.each(list, function(i, e) {
    if ($.inArray(e.toLowerCase(), result) == -1) result.push(e.toLowerCase());
  });
  return result;
}

alert(unique(x));

只要稍微调整一下,你就会在那里

function unique(list) {
    var result = [];
    $.each(list, function(i, e) {
        if($.inArray(e, list)){ result.push(e)};
    });
    return result;
}
那很好

无需更改案例

do
x=x.map(el=>el.toLowerCase())
老实说,最简单的方法就是对所有东西都使用
.toLowerCase()
,这样就可以始终使用相同的情况来复制“一小群字符在转换为小写时,无法往返。往返意味着将字符从一个语言环境转换为另一个以不同方式表示字符数据的语言环境,然后从转换后的字符中准确检索原始字符。”