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

ลบทุก N-th element ออกจากอาร์เรย์ใน JavaScript ยังไง?

สมมติว่าเราต้องเขียนฟังก์ชัน removeNth ที่รับอาร์เรย์และตัวเลข n และมันลบทุก nth element ของอาร์เรย์แบบ in-place

สิ่งนี้ทำได้ด้วยเมธอด Array.prototype.splice() และนี่คือโค้ดสำหรับทำเช่นนั้น:

ตัวอย่างโค้ด

const arr = ['T','h','a','i','s','b',' ','i','c','s',' ','a','t','h','e','e',' ','t','s','o','r','n','g','t',' ','t','n','h','a','s','t',' ','o','n','e','o','v','e','a','r',' ','f','e','n','a','d','s','p',','];

const removeNth = (arr, n) => {
  for (let i = n - 1; i < arr.length; i += n) {
    arr.splice(i, 1);
  }
};

removeNth(arr, 2);
console.log(arr);

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้:

[
  'T', 'a', 'i', 'b',
  ' ', 'c', 's', 'a',
  't', 'e', 'e', 't',
  's', 'r', 'n', 't',
  ' ', 'n', 'h', 's',
  't', 'o', 'n', 'o',
  'v', 'a', 'r', 'f',
  'e', 'a', 'd', 'p',
  ','
]