[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 上追蹤我們