Giả sử chúng ta có mảng chuỗi chứa các mục trùng lặp như sau:
const arr = ['blue', 'blue', 'green', 'blue', 'yellow', 'yellow', 'green'];
Chúng ta cần viết hàm JavaScript nhận vào mảng này. Hàm gộp tất cả các mục trùng lặp liên tiếp với nhau.
Kết quả mong đợi:
const output = ['blueblue', 'green', 'blue', 'yellowyellow', 'green'];
Ví dụ
Mã thực hiện:
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));Kết quả
Kết quả in ra console:
[ 'blueblue', 'green', 'blue', 'yellowyellow', 'green' ]