相关疑难解决方法(0)

对象的映射函数(而不是数组)

我有一个对象:

myObject = { 'a': 1, 'b': 2, 'c': 3 }
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个本机方法,类似于Array.prototype.map将使用如下:

newObject = myObject.map(function (value, label) {
    return value * value;
});

// newObject is now { 'a': 1, 'b': 4, 'c': 9 }
Run Code Online (Sandbox Code Playgroud)

JavaScript是否具有map对象的这种功能?(我想将它用于Node.JS,所以我不关心跨浏览器问题.)

javascript functional-programming node.js map-function

903
推荐指数
16
解决办法
100万
查看次数

为什么javascript中没有Array.prototype.flatMap?

flatMap对集合非常有用,但javascript不提供Array.prototype.map.为什么?

有没有办法flatMap在javascript中以简单有效的方式模拟,无需flatMap手动定义?

javascript functional-programming

57
推荐指数
4
解决办法
4万
查看次数

Y-combinator如何以编程方式计算固定点?

我相信我的理解数学的Y组合子的想法:它返回的功能给出一个固定点F,从而f = Y(F)在那里f满足f == F(f).

但我不明白实际的计算程序是如何明智的?

我们来看一下这里给出的javascript示例:

var Y = (F) => ( x => F( y => x(x)(y) ) )( x => F( y => x(x)(y) ) )
var Factorial = (factorial) => (n => n == 0 ? 1 : n * factorial(n-1))

Y(Factorial)(6) == 720    // => true
computed_factorial = Y(Factorial)
Run Code Online (Sandbox Code Playgroud)

我不明白的部分是如何computed_factorial实际计算函数(固定点)?通过跟踪Y的定义,你会发现它在该部分遇到无限递归x(x),我看不到那里隐含的任何终止案例.然而,奇怪的确回来了.谁能解释一下?

javascript y-combinator

9
推荐指数
1
解决办法
447
查看次数