พิมพ์รูปแบบตัวเลขใน JavaScript
Nov 05 2020
ฉันต้องการพิมพ์ตัวเลขในรูปแบบด้านล่างและฉันต้องการสิ่งนี้เพื่อพิมพ์โดยใช้เพียงอันเดียวสำหรับการวนซ้ำไม่อยู่ในเงื่อนไขภายในสำหรับลูป
ถ้าฉันให้s = 7รูปแบบผลลัพธ์จะเป็น7, 5, 3, 1, 3, 5, 7
ถ้าs=6เอาต์พุตเป็น6, 4, 2, 4, 6
นี่คือสิ่งที่ฉันพยายาม แต่ไม่สำเร็จ
const s = 7, b = 2
for (x = s, d = b; x > 0 && x <= 7; x -= 2) {
console.log(x)
}
ฉันไม่ต้องการใช้ไลบรารีที่สร้างไว้ล่วงหน้าเพื่อให้บรรลุสิ่งนี้เช่น Math.abs()
คำตอบ
1 maraca Nov 05 2020 at 07:32
ด้วยตัวดำเนินการ ternary:
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
สิ่งนี้ใช้ได้กับทั้งเลขคู่และเลขคี่:
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)
}
สิ่งที่ฉันได้ทำคือในบล็อกการเพิ่ม / ลดเมื่อ x เท่ากับ 1 สำหรับจำนวนคี่หรือเมื่อ x เท่ากับ 2 สำหรับเลขคู่ขั้นตอนจะเปลี่ยนจากบวกเป็นลบ
ในการพิมพ์ตัวเลขจากน้อยไปมาก:
const s = 10
for ( x=0,step=1; x!== -1 ; x===s ? (step = -1, x = x+step): x= x+step) {
console.log(x)
}