首页 > 解决方案 > 不理解 Javascript 中的高阶函数。收到错误

问题描述

我试图让这个程序使用这些函数通过使用高阶函数来打印 N 个完美幂。我把自己难住了,现在当我打印我的函数时,我得到一个 NaN 数组,它是我的“P”输入的长度。它的功能与我需要的非常接近,但我无法解决这个错误。任何帮助,将不胜感激。

输出的一个例子是,如果我输入:perfectpower(5,3); 我会看见:

5、25、125

   power = (N, P) => {

    return Math.pow(N, P);
}


function each(A, func) {

    for (var i = 0; i < A.length; i++) {
        A[i] = func(A[i]);
    }
    return A;
}


function sequence(N) {

    return Array(N).fill().map((_, idx) => idx + 1)

}


perfectpower = (N, P) => {

    return (each(sequence(P), power))

}

console.log(perfectpower(5,3));
console.log(sequence(5))
console.log(power(5,2))

标签: javascripthigher-order-functions

解决方案


const power = (N) => (P) => {

    return Math.pow(N, P);
}


function each(A, func) {

    for (var i = 0; i < A.length; i++) {
        A[i] = func(A[i]);
    }
    return A;
}


function sequence(N) {

    return Array(N).fill().map((_, idx) => idx + 1)

}


const perfectpower = (N, P) => {

    return (each(sequence(P), power(N)))

}

console.log(perfectpower(5,3));


推荐阅读