[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;
}
},
};
};