Cetak pola angka dalam JavaScript

Nov 05 2020

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

1 maraca Nov 05 2020 at 07:32

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

1 ShridharRKulkarni Nov 05 2020 at 07:12

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

TejaGoudKandula Nov 05 2020 at 08:18

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