Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Rút gọn mảng thành các nhóm trong JavaScript

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' ]