javascript - 从javascript数组中提取具有唯一字符的字符串
问题描述
我只想提取那些具有唯一字符的字符串,我有一个字符串数组:
var arr = ["abb", "abc", "abcdb", "aea", "bbb", "ego"];
Output: ["abc", "ego"]
我尝试使用 Array.forEach() 方法来实现它:
var arr = ["abb", "abc", "abcdb", "aea", "bbb", "ego"];
const filterUnique = (arr) => {
var result = [];
arr.forEach(element => {
for (let i = 0; i <= element.length; i++) {
var a = element[i];
if (element.indexOf(a, i + 1) > -1) {
return false;
}
}
result.push(element);
});
return result;
}
console.log(filterUnique(arr));
想知道有没有其他方法可以完成这个任务?
任何建议。
解决方案
我会.filter
通过字符串 Set 的大小是否与字符串的长度相同:
const filterUnique = arr => arr
.filter(str => new Set(str).size === str.length);
console.log(filterUnique(["abb", "abc", "abcdb", "aea", "bbb", "ego"]));
(一个 Set 不会包含重复的元素,因此,例如,如果将 4 个元素放入一个集合中,并且 2 个是其他元素的重复,那么 Set 的结果大小将为 2)
推荐阅读
- apache-spark - 是否有允许附加列的数据存储格式?
- python - 如果已经存在,则增加目录名称
- android - 如何发布只能通过链接获得的应用程序?
- html - Django-Template:点击列表项并制作详细信息页面
- postgresql - 从 csv 复制到具有 id 序列列自动递增 PSQL 的表中
- python - Keras中的顺序模型是什么意思
- python-3.x - 如何使用for循环为熊猫数据框附加整行
- amazon-web-services - AWS ECS 中的 fs.file-max 和 ulimit nofile 是否受 EC2 的 fs.file-max 和 nofile 限制?
- python - 包含所有详细信息的 github 存储库
- python - 在 AWS Lambda 上使用 Flask 的 Sentry 未捕获错误