javascript - 如何为相同的参数只执行一次函数
问题描述
我的函数调用如下:
await insertingMatchIdsInAllTeamPlayers(fieldersA, matchID)
假设使用 matchID '1' 调用该函数,它应该被执行,但是如果使用 matchId '1' 再次调用该函数(在我的情况下是这样),它不应该被执行。但是,如果使用 id '2'(基本上是 id !== '1')调用它,它应该被执行。我不在乎守场员的争论。
解决方案
您可以在函数外部跟踪数组中所有传递的参数。当您调用该函数时,它将检查提供的参数是否在数组中。如果不是,请调用该函数并将参数插入到数组中。如果参数已经在数组中,则不要调用该函数。
const suppliedMatchIDs = [];
function insertingMatchIdsInAllTeamPlayers(fieldersA, matchID) {
if (suppliedMatchIDs.includes(matchID)) {
return;
} else {
suppliedMatchIDs.push(matchID);
}
// Your function here
}
缓存参数以加快函数调用的一般概念称为memoization。
推荐阅读
- python - 如何计算两个坐标系之间的平均/最佳旋转?
- javascript - CKEditor 5 版本 29(在线生成器) - 无法加载自定义构建
- tableau-desktop - 如何将子类别值转换为表格文本表中的列
- php - 刷新后会话数据不可用
- python - 在桌面应用程序上显示假名
- java - Groovy 自定义 MetaClassImpl 导致“找不到匹配的构造函数”
- python - 为什么 X 和 Y 的变化对 w4 和 w2 没有影响?
- javascript - 通过 id 从 prisma 客户端获取最新数据
- python - 向包含标签 Django 发送消息
- python - Python 更新 YAML 而不更改格式