gpt4 book ai didi

javascript - Underscore.js:如何链接自定义函数

转载 作者:行者123 更新时间:2023-12-02 22:34:37 25 4
gpt4 key购买 nike

使用Underscore.js ,我可以编写以下返回 42 的内容:

_([42, 43]).chain()
.first()
.value()

我有自定义函数,不是 Underscore.js 的一部分,称为 double():

function double(value) { return value * 2; };

我希望能够在 Underscore 链中调用此函数,就好像它是 Underscore 的一部分一样。我想编写以下内容,并返回 84:

_([42, 43]).chain()
.first()
.double()
.value()

这不起作用,因为 Underscore 没有定义 double()。我可以使用 tap()如:

_([42, 43]).chain()
.first()
.tap(double)
.value()

这是有效的,但是tap将函数应用于其参数并返回参数,而不是函数的结果。所以在我看来,我需要一种 tap 来返回应用于其参数的函数的结果。 Underscore.js 中有类似的东西吗?我是否遗漏了一些非常明显的东西?

最佳答案

找不到返回函数运行返回值的tap,我定义了一个可以获取并将其添加到_ :

_.mixin({take: function(obj, interceptor) {
return interceptor(obj);
}});

然后假设我有:

function double(value) { return value * 2; };

我可以写:

_([42, 43]).chain()
.first() // 42
.take(double) // Applies double to 42
.value() // 84

您可以将take视为对象上的map,而不是列表。想尝试一下吗?看这个example on jsFiddle .

关于javascript - Underscore.js:如何链接自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3945673/

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