สมมุติว่าเรามีอาร์เรย์ของ 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 ]