我是什么意思呢?首先让我们看一下我写的一些代码:
let names = ['James', 'james', 'bob', 'JaMeS', 'Bob'];
let uNames = {};
names.forEach(n => {
let lower = n.toLowerCase();
if (!uNames[lower]) {
uNames[lower] = n;
}
});
names = Object.values(uNames);
console.log(names); // >>> (2) ["James", "bob"]
目标是忽略大小写,但保留一个原始输入,使数组中的值唯一。
我在想是否有比我提出的更优雅/性能更好的解决方案。
仅将整个数组转换为小写字母后再进行去重不是一个解决方案,因为我希望最终结果只包含已经存在于输入数组中的值。无论哪个输入(例如 James
或 james
或 JaMeS
)都不重要。
Array.prototype.map
与使用Set
的此答案的组合。 - JJWesterkamp