以組的形式縮減 JavaScript 中的陣列


假設,我們有一個包含一些重複條目的字串陣列,如下所示 −

const arr = ['blue', 'blue', 'green', 'blue', 'yellow', 'yellow', 'green'];

我們需要編寫一個 JavaScript 函式,該函式接受這樣的陣列。該函式應將所有重複條目彼此合併。

因此,上述輸入的輸出應如下所示 −

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

更新於: 20-Nov-2020

170 次瀏覽

啟動您的 職業

完成課程獲得認證

開始
廣告
© . All rights reserved.