Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

อัลกอริทึม JavaScript - การลบค่าติดลบออกจากอาร์เรย์

กำหนดอาร์เรย์ 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 ]