In các mẫu số trong JavaScript

Nov 05 2020

Tôi muốn in các số theo mẫu như bên dưới cũng vậy, tôi cần cái này để in chỉ sử dụng một vòng lặp for không ở điều kiện if bên trong vòng lặp for.

Nếu tôi đưa s = 7ra mẫu đầu ra sẽ là7, 5, 3, 1, 3, 5, 7

Nếu s=6thì đầu ra là6, 4, 2, 4, 6

Đây là những gì tôi đã thử nhưng không thành công.

const s = 7, b = 2

for (x = s, d = b; x > 0 && x <= 7; x -= 2) {
  console.log(x)
}

Tôi không muốn sử dụng bất kỳ thư viện dựng sẵn nào để đạt được điều này, chẳng hạn như Math.abs()

Trả lời

1 maraca Nov 05 2020 at 07:32

Với toán tử bậc ba:

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

Điều này hoạt động cho cả số chẵn và số lẻ:

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

Những gì tôi đã làm là trong khối tăng / giảm khi x bằng 1 đối với số lẻ hoặc khi x bằng 2 đối với số chẵn, bước đang được thay đổi từ dương sang âm.

Để in các số theo thứ tự tăng dần:

const s = 10

for ( x=0,step=1; x!== -1 ; x===s ? (step = -1, x = x+step): x= x+step) {
    console.log(x)
}