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

การลบรายการที่ซ้ำกันออกจากอาร์เรย์ที่เรียงลำดับของตัวอักษรใน JavaScript


สมมติว่าเราได้รับอาร์เรย์ของตัวอักษรที่เรียงลำดับ เราจำเป็นต้องเขียนฟังก์ชันที่จะลบข้อมูลที่ซ้ำกันทั้งหมดออกจากอาร์เรย์แบบแทนที่ เพื่อให้แต่ละองค์ประกอบปรากฏเพียงครั้งเดียวและคืนค่าความยาวใหม่ของอาร์เรย์

เงื่อนไขในการทำเช่นนี้คือเราไม่สามารถจัดสรรพื้นที่เพิ่มเติมสำหรับอาร์เรย์อื่นได้ เราต้องทำสิ่งนี้โดยแก้ไขอาร์เรย์อินพุตแทนที่ด้วยหน่วยความจำพิเศษ O(1)

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const arr = [1, 3, 3, 6, 7, 7, 9, 11, 13];
const removeDuplicates = (arr = []) => {
   let i=0;
   while(i < arr.length − 1){
      let j = i + 1;
      if(arr[i] === arr[j]){
         arr.splice(j,1);
      }else{
         i++;
      }
   };
};
removeDuplicates(arr);
console.log(arr);

ผลลัพธ์

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

[
   1, 3, 6, 7,
   9, 11, 13
]