Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ฉันจะลบองค์ประกอบที่ซ้ำกันซ้ำ ๆ ติดต่อกันออกจากอาร์เรย์ได้อย่างไร


สมมุติว่าเรามีอาร์เรย์ของ Number literals ที่มีการซ้ำซ้อนที่ต่อเนื่องกันเช่นนี้ -

const testArr = [1, 1, 2, 2, 3, 3, 1, 1, 1];

เราควรเขียนฟังก์ชันบีบอัดที่ใช้ในอาร์เรย์นี้และลบรายการต่อเนื่องที่ซ้ำซ้อนทั้งหมดออก เพื่อให้ผลลัพธ์ออกมาเป็นแบบนี้ −

const output = [1, 2, 3, 1];

มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน เราจะใช้การเรียกซ้ำสำหรับสิ่งนี้และโค้ดสำหรับสิ่งนี้จะเป็น -

ตัวอย่าง

const testArr = [1, 1, 2, 2, 3, 3, 1, 1, 1];
const compress = (arr, len = 0, canDelete = false) => {
   if(len < arr.length){
      if(canDelete){
         arr.splice(len, 1);
         len--;
      }
      return compress(arr, len+1, arr[len] === arr[len+1])
   };
   return;
};
compress(testArr);
console.log(testArr);

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น -

[ 1, 2, 3, 1 ]