gpt4 book ai didi

javascript - 如何将变量值传递给 .filter()

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:05 25 4
gpt4 key购买 nike

以下代码摘自引用文献here :

function isBigEnough(value) {
return value >= 10;
}

var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]

我想知道是否可以通过传入变量来动态更改 return 行中 10 的值。从引用资料中我无法弄清楚如何做到这一点。我想调用相同的过滤器回调,但为正则表达式测试传入一个唯一值。

所以它看起来像这样:

function isBigEnough(value, num) {
return value >= num;
}

最佳答案

最简单的方法是简单地使用匿名函数并关闭您要使用的变量:

var minSize = 10;
var filtered = [12, 5, 8, 130, 44].filter( val => val >= minSize );

如果你真的想保留一个命名函数来回调,你可以通过绑定(bind)部分地应用一个参数:

function isBigEnough(minSize, value) {
return value >= minSize;
}

var filtered = [12, 5, 8, 130, 44].filter(isBigEnough.bind(null,10));

这里,bind 将返回一个新函数,最左边的参数绑定(bind)到 10(第一个参数为 null,在调用时作为 this 传递给函数)。所以filter传入的参数会在回调中显示为第二个值。

关于javascript - 如何将变量值传递给 .filter(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41404425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com