กำหนดอาร์เรย์ X ที่มีหลายค่า (เช่น [-3, 5, 1, 3, 2, 10]) เราต้องเขียนฟังก์ชันที่ลบค่าติดลบทั้งหมดออกจากอาร์เรย์
เมื่อฟังก์ชันทำงานเสร็จ อาร์เรย์ควรประกอบด้วยเฉพาะตัวเลขบวก เราต้องทำสิ่งนี้โดยไม่สร้างอาร์เรย์ชั่วคราว และใช้เฉพาะเมธอด pop ในการลบค่า
ตัวอย่าง
// ลบค่าติดลบท้ายทั้งหมด
while (x.length && x[x.length - 1] < 0) {
x.pop();
}
for (var i = x.length - 1; i >= 0; i--) {
if (x[i] < 0) {
// แทนที่องค์ประกอบนี้ด้วยองค์ประกอบสุดท้าย (รับประกันว่าเป็นบวก)
x[i] = x[x.length - 1];
x.pop();
}
}
ผลลัพธ์
โค้ดนี้จะแสดงผลลัพธ์ดังต่อไปนี้บนคอนโซล:
[ 1, 8, 9 ]