Cetak pola angka dalam JavaScript
Saya ingin mencetak angka dalam pola seperti di bawah ini juga saya perlu ini untuk mencetak hanya dengan menggunakan satu loop for tidak dalam kondisi if di dalam loop.
Jika saya memberikan s = 7pola keluaran akan7, 5, 3, 1, 3, 5, 7
Jika s=6kemudian outputnya adalah6, 4, 2, 4, 6
Inilah yang saya coba tetapi tidak berhasil.
const s = 7, b = 2
for (x = s, d = b; x > 0 && x <= 7; x -= 2) {
console.log(x)
}
Saya tidak ingin menggunakan pustaka yang dibuat sebelumnya untuk mencapai ini seperti Math.abs()
Jawaban
Dengan operator terner:
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);
Ini berfungsi untuk bilangan genap dan ganjil:
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)
}
Apa yang telah saya lakukan adalah bahwa dalam blok increment / decrement ketika x sama dengan 1 untuk bilangan ganjil atau ketika x sama dengan 2 untuk bilangan genap langkahnya diubah dari positif menjadi negatif.
Untuk mencetak angka dalam urutan menaik:
const s = 10
for ( x=0,step=1; x!== -1 ; x===s ? (step = -1, x = x+step): x= x+step) {
console.log(x)
}