-11
votes

Comment itérer une matrice en utilisant une fonction récursive?

J'ai un tableau:

x = ['A', 'AA', 'AA', 'AAA'];

Comment puis-je l'itérair à la sortie. / p> xxx xxx

Comment puis-je faire ce moyen le plus simple? Dois-je appeler la méthode de manière récursive?

Toute aide serait vraiment appréciée


3 commentaires

Ou pour la sortie complète: x.map ((_, i ,r) => "car_" + arr.slice (0, i + 1) .join ("_")); .


@SebastiansItianImon I Obtenez le suivi de vente suivant: ["car_a, aa, aaa"] real sortie: ["car_a, car_a_aa, car_a_aa_aaa"]


@Tanviralam Non, vous ne le faites pas .


4 Réponses :


-1
votes

La méthode réduite () exécute une fonction de réducteur (que vous fournissez) sur chaque élément de la matrice, ce qui entraîne une seule valeur de sortie.

Array.Prototype.reduce () xxx


2 commentaires

J'essaie de réparer ma réponse. Rendre la réponse plus appréciée.


Désolé, j'ai trouvé le vrai problème et je l'ai résolu. Merci pour vos conseils.



2
votes

Que diriez-vous d'un classique pour la boucle avec une jointure:

p>

const x = ["A", "AA", "AAA"]
const prefix = "car_"
const output = []
for (let i = 1; i <= x.length; i++) {
  output.push(prefix + x.slice(0, i).join("_"))
}
console.log(output)


2 commentaires

Je reçois le suivi: ["car_a, aa, aaa"]] real sortie: ["car_a, car_a_aa, car_a_aa_aaa"]


@Tanviralam Voir le code supplémentaire.



1
votes

Vous pouvez utiliser une fonction récursive si vous le souhaitez.

p>

function print(pre, sep, arr, i) {
 if (i >= arr.length) return;

 const s = pre + sep + arr[i];
 console.log(s);
 print(s, sep, arr, i+1);
}

const x = ['A', 'AA', 'AAA'];

print("car", "_", x, 0);


0 commentaires

1
votes

Je pense que @ Sebastian-Simon Réponse est le meilleur jusqu'à présent. Vous pouvez le faire dans une fonction carte em> avec Slice em> et Join em> ou à l'intérieur d'un réduisez em> mais être conscient que vous êtes au courant faire un effet secondaire avec cette poussée de réseau.

p>

const x = ['A', 'AA', 'AAA'];

const result = x.map((_, i, arr) => "car_" + arr.slice(0, i + 1).join("_"));

const result2 = [];
x.reduce((acc, val, i, arr) => {
  acc += '_' + val;
  result2.push('car' + acc);
  return acc;
}, '');

console.log(result);
console.log(result2);


0 commentaires