[Easy] LeetCode JS 30 - 2704. To Be Or Not To Be (手寫 expect 函式)

2024年3月5日

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

LeetCode 30 Days of JavaScript

本題來自 LeetCode 的 30 天 JacaScript 挑戰

2704. To Be Or Not To Be (手寫 expect 函式)

題目描述

為了幫助開發人員測試程式碼,你需要撰寫一個 expect 的函式。該函式可以接受任何值 val,並返回一個包含以下兩個功能的物件:

  • toBe(val) 接受另一個值,如果這兩個值相等(即 ===),則返回 true。如果不相等,則會拋出一個錯誤訊息 "Not Equal"。
  • notToBe(val) 接受另一個值,如果這兩個值不相等(即 !==),則返回 true。如果相等,則會拋出一個錯誤訊息 "Equal"。
// 範例一
輸入: func = () => expect(5).toBe(5)
輸出: {"value": true}
解說: 5 === 5 so this expression returns true.

// 範例二
輸入: func = () => expect(5).toBe(null)
輸出: {"error": "Not Equal"}
解說: 5 !== null so this expression throw the error "Not Equal".

本題解答

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

解法

var expect = function (val) {
  return {
    toBe: (value) => {
      if (value !== val) {
        throw new Error("Not Equal");
      } else {
        return true;
      }
    },
    notToBe: (value) => {
      if (value === val) {
        throw new Error("Equal");
      } else {
        return true;
      }
    },
  };
};
🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們