0
votes

Ne pas comprendre les fonctions d'ordre supérieur en JavaScript. Recevoir une erreur

J'essaie de faire utiliser ce programme ces fonctions pour imprimer n Nombre de puissances parfaites avec l'utilisation de fonctions d'ordre supérieur. J'ai jeté moi-même, et maintenant, lorsque j'imprime ma fonction, je reçois un tableau de NaN la longueur de mon entrée "P". Cela fonctionne étroitement à ce dont j'ai besoin mais je ne peux pas me contenter de l'erreur. Toute aide serait appréciée.

Un exemple de la sortie serait si je suis entré: PerfectPuir (5,3); Je verrais:

5, 25, 125 xxx


0 commentaires

3 Réponses :


1
votes

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));


0 commentaires

0
votes

Vous n'en passez pas n via cette chaîne, donc math.pow n'obtient finalement que l'un des deux arguments dont il a besoin. Je vois que je saisis cela, quelqu'un d'autre a posté le code pour accomplir ce dont vous avez besoin.


1 commentaires

Merci beaucoup, je comprends maintenant.



0
votes

Vous n'avez pas passé le deuxième argument lors de l'appelant Func () CODE> Qui est la fonction Power code> qui nécessite 2 paramètres, c'est pourquoi il produit nan code> valeurs.

  power = (N, P) => {

    return Math.pow(N, P);
}


function each(A, func, pow) {

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


function sequence(N) {

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

}


perfectpower = (N, P) => {

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

}

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


0 commentaires