javascript - 我可以在过滤方法中使用变量吗?
问题描述
我可以为变量赋值,然后在 js 过滤方法中使用这些变量吗?
我正在尝试使用分配给两个变量的本地数据,然后在我的过滤器方法中使用这些变量。我正在尝试这个,因为我想使用几个不同的过滤器(键和值,例如年龄:5)过滤一个数组。我有一个播放器数组,您可以选择一个或多个东西来过滤您的播放器。当用户选择过滤器时,它们被保存在过滤器[]中。我想遍历过滤器 [] 并将每个过滤器应用于一组玩家。第一个过滤器需要在所有玩家的数组上使用,然后每个后续过滤器都可以在过滤后的数组上使用(使其每次迭代都更小)。我的代码只显示了我最初的第一个过滤方法。
applyFirstFilter() {
let filterValue = this.filters[0];
let filterKey = this.checkValue(filterValue);
console.log("key: " + filterKey + ", filterValue: " + filterValue);
//loop through filters[]
// apply first filter to allPlayers and assign to displayPlayerArray
this.displayedPlayerArray = this.allPlayersArray.filter(player => player.filterKey === filterValue);
console.log("displayed array: " + this.displayedPlayerArray);
// apply all remaining filters to displayPlayerArray
},
控制台显示 filterValue 和 filterKey 具有我期望它们具有的值。我所做的所有研究都显示了固定的示例,例如:
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
this.localArray = ages.filter(checkAdult);
}
到目前为止,我的过滤方法不会影响我的数组。我真的不确定这实际上是否可行。: / 有任何想法吗?
解决方案
要回答您最基本的问题:是的,您可以在过滤器中使用变量。以年龄过滤为例,您可以使用变量而不是固定数字:
var ages = [32, 33, 16, 40];
function checkAge(age, minAge) {
return age >= minAge;
}
function myFunction(minAge) {
return ages.filter((age) => checkAge(age, minAge));
}
myFunction(18); // returns [32, 33, 40];
myFunction(30); // returns [40]
现在,为什么你的代码不工作有点难以弄清楚。为此,我们需要更多地了解allPlayersArray
和this.filters
推荐阅读
- javascript - 数组的第一部分为空
- json - 无法运行 json 服务器
- javascript - Reactjs地图方法选择唯一ID
- opengl - 使用立方体贴图时 OpenGL 清除缓冲区
- python - 从大量测量中获取特定值的脚本
- angular - Ionic 中的奇怪路由行为
- python - 保存和加载 TensorFlow 模型导致 Keras 错误
- gremlin - 如果在 repeat() 循环后使用 AWS Neptune path() 会截断
- python - 在 Python 中格式化/绘制动态 JSON 数据
- google-cloud-platform - 什么是比 Redis 更便宜的简单键值存储系统?