[Easy] 手寫 compact

2024年1月28日

💎 加入 E+ 成長計畫 與超過 400+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

題目描述

Lodash 的 compact 是開發中經常被用的效用函式,也經常會在面試被問到。 compact 能將輸入的陣列中的 false、null、0、空字串、undefined 和 NaN 都去除,並輸出一個新的陣列。

compact([0, 1, false, 2, "", 3, "hello"]); // [1, 2, 3, 'hello']
compact([null, undefined, NaN, " "]); // [' ']
compact([{ name: "Alice" }, null, { age: 30 }, undefined]); // [{ name: 'Alice' }, { age: 30 }]

本題解答

以下是本題的解答,詳細解題思路可以在 E+ 成長計畫看到。如果想練習更多題目,推薦可以到 GreatFrontEnd 上練習

解法一

function compact(array) {
  const result = [];
  for (const value of array) {
    if (value) {
      result.push(value);
    }
  }
  return result;
}

解法二

function compact(array) {
  return array.filter(Boolean);
}
🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們