ภาพรวม
สมมติว่าเรามีอาร์เรย์ของสตริงที่มีรายการซ้ำ:
const arr = ['blue', 'blue', 'green', 'blue', 'yellow', 'yellow', 'green'];
เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ดังกล่าวและรวมรายการซ้ำที่ติดกันเข้าด้วยกัน
ผลลัพธ์ที่คาดหวัง
const output = ['blueblue', 'green', 'blue', 'yellowyellow', 'green'];
ตัวอย่างโค้ด
const arr = ['blue', 'blue', 'green', 'blue', 'yellow', 'yellow', 'green'];
const combineDuplicate = (arr = []) => {
let prev = null;
const groups = arr.reduce((acc, value) => {
if (prev === value) {
acc[acc.length - 1] += value;
} else {
prev = value;
acc.push(value);
}
return acc;
}, []);
return groups;
};
console.log(combineDuplicate(arr));
ผลลัพธ์ในคอนโซล
[ 'blueblue', 'green', 'blue', 'yellowyellow', 'green' ]