Imprimer des motifs numériques en JavaScript
Je veux imprimer les nombres dans le motif comme ci-dessous également, j'ai besoin de cela pour imprimer en utilisant une seule boucle for pas dans la condition if à l'intérieur de la boucle for.
Si je donne s = 7le modèle de sortie serait7, 5, 3, 1, 3, 5, 7
Si s=6alors la sortie est6, 4, 2, 4, 6
C'est ce que j'ai essayé mais sans succès.
const s = 7, b = 2
for (x = s, d = b; x > 0 && x <= 7; x -= 2) {
console.log(x)
}
Je ne veux pas utiliser de bibliothèques prédéfinies pour y parvenir, telles que Math.abs()
Réponses
Avec opérateur ternaire:
const s = 10, b = 2
for (x = s, step = -b; x <= s; step = x + step <= 0 ? -step : step, x += step) {
console.log(x)
}
var s = 7, b = 2, x, d;
var front = " ", back = " ";
for (x = s, d = b; x - b > 0 ; x -= b) {
front = front + " " + x;
back = x + " " + back;
}
console.log(front + " " + x + " " + back);
Cela fonctionne pour les nombres pairs et impairs:
const s = 8, b = 2
for (x=s,step = b; x <=s ; (x===1 || x===2) ? (step = -b, x = x-step ): x= x-step) {
console.log(x)
}
Ce que j'ai fait, c'est que dans le bloc d'incrémentation / décrémentation lorsque x est égal à 1 pour les nombres impairs ou lorsque x est égal à 2 pour les nombres pairs, le pas est changé de positif à négatif.
Pour imprimer les nombres dans l'ordre croissant:
const s = 10
for ( x=0,step=1; x!== -1 ; x===s ? (step = -1, x = x+step): x= x+step) {
console.log(x)
}