Javascript在数组中拆分逗号上的字符串并删除重复项,同时忽略结果数组上的大小写敏感度
我有一个javascript数组,如下所示:Javascript在数组中拆分逗号上的字符串并删除重复项,同时忽略结果数组上的大小写敏感度,javascript,arrays,Javascript,Arrays,我有一个javascript数组,如下所示: ["polyester", "cotton", "Polyester, Nylon", "Cotton, Acrylic", "Polyester, fiber", "nylon, Leather"] 我想将此数组变异为: ["polyester", "cotton", "Nylon", "Acrylic", "fiber", "Leather"] 即在数组中用逗号拆分字符串,然后删除重复项,同时忽略大小写敏感度。 我已经研究了其他问题。它们要么
["polyester", "cotton", "Polyester, Nylon", "Cotton, Acrylic", "Polyester, fiber", "nylon, Leather"]
我想将此数组变异为:
["polyester", "cotton", "Nylon", "Acrylic", "fiber", "Leather"]
即在数组中用逗号拆分字符串,然后删除重复项,同时忽略大小写敏感度。
我已经研究了其他问题。它们要么解释如何从数组中删除重复项,要么解释如何拆分逗号上的单个字符串,而不是数组中的多个字符串。我已尝试通过以下方式解决此问题:
mutated = a.filter(function(item, pos) {
return a.indexOf(item) == pos;
})
但这不会在数组中拆分逗号分隔的字符串。我正在寻找一种解决方案,它可以在忽略区分大小写的情况下同时进行拆分和删除重复项。这里有一个简单的解决方案。它没有保留原来的大写项,但我看不出这样做的理由,因为它只基于原始数组中的顺序。
//我们将原始项连接到一个长字符串,然后将其拆分
var items=original.join(',).split(/\s*,\s*/);
//我们将所有项目统一小写
items=items.map(函数(项){
return item.toLowerCase();
});
//我们将新项目放在一个唯一的列表中
var uniqueItems=[];
items.forEach(函数(项){
if(uniqueItems.indexOf(item)<0){
uniqueItems.push(项目);
}
});代码>这里有一个简单的解决方案。它没有保留原来的大写项,但我看不出这样做的理由,因为它只基于原始数组中的顺序。
//我们将原始项连接到一个长字符串,然后将其拆分
var items=original.join(',).split(/\s*,\s*/);
//我们将所有项目统一小写
items=items.map(函数(项){
return item.toLowerCase();
});
//我们将新项目放在一个唯一的列表中
var uniqueItems=[];
items.forEach(函数(项){
if(uniqueItems.indexOf(item)<0){
uniqueItems.push(项目);
}
});代码>可能的重复请提供更多信息,说明您做了哪些研究,尝试了哪些,遇到了哪些问题,等等。@pseudoAJ我编辑了这个问题并提供了更多信息。@GerardvanHelden我编辑了这个问题并提供了更多信息。可能的重复请提供更多信息,说明你做了哪些研究,尝试了哪些,遇到了哪些问题,等等@pseudoAJ我编辑了问题并提供了更多信息。@GerardvanHelden我编辑了问题并提供了更多信息。