javascript - 如何将嵌套的“for”优化为函数式编程
问题描述
我创建了一个函数来检查列表中是否有重复的手机号码。问题是我通过使用嵌套 for 来做到这一点。如何使用函数式编程优化此代码?
checkDuplicate(): boolean {
for (let i = 0; i < this.phoneList.length; i++) {
for (let j = 0; j < this.phoneList.length; j++) {
if (i != j) {
if (this.phoneList[i].number === this.phoneList[j].number) {
this.toastrService.error('Phone already in List!');
return true;
}
}
}
}
return false;
}
解决方案
您可以制作一个仅包含唯一数字的 Set 并将 Set 的长度与原始数组的长度进行比较
hasDuplicates(): boolean {
return new Set(this.phoneList.map(p => p.number)).size < this.phoneList.length
}
推荐阅读
- spring-boot - 如何测试 Gitlab-ci Docker + Spring Boot + Testcontainers + Wkhtmltopdf
- javascript - 跳过按钮 - 如何用另一个功能停止一个功能
- python - 在 geoseries 中访问几何中的行
- javascript - 如何从节点模块导入 PaperJS?
- java - 意图问题:如何使用另一个类“适配器”中的 MainActivity 将数据传递给 SecondActivity
- python - 使用 1 个月和 12 个月的滞后计算 Python 中的动量信号
- html - 尝试重新创建此网页设计但无法拆分网页
- python - UnicodeDecodeError 告诉您导致错误的字符位置。我怎样才能显示那个字符?
- macos - 使用 CLion 在 Mac 上调试 xv6
- python - Pandas datetime 查找给定日期之前最近的日期。如果不存在,则获取最近的日期