说在前面
🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。
题目描述
请你编写一个名为 expect
的函数,用于帮助开发人员测试他们的代码。它应该接受任何值 val
并返回一个包含以下两个函数的对象。
toBe(val)
接受另一个值并在两个值相等(===
)时返回true
。如果它们不相等,则应抛出错误"Not Equal"
。notToBe(val)
接受另一个值并在两个值不相等(!==
)时返回true
。如果它们相等,则应抛出错误"Equal"
。
示例 1:
输入: func = () => expect(5).toBe(5) 输出: {"value": true} 解释: 5 === 5 因此该表达式返回 true。
示例 2:
输入: func = () => expect(5).toBe(null) 输出: {"error": "Not Equal"} 解释: 5 !== null 因此抛出错误 "Not Equal".
示例 3:
输入: func = () => expect(5).notToBe(null) 输出: {"value": true} 解释: 5 !== null 因此该表达式返回 true.
解题思路
接受一个值作为参数,并返回一个包含 toBe 和 notToBe 方法的对象。这些方法用于进行断言测试。
- toBe(value) 方法用于判断给定的值是否与传入的参数相等。如果不相等,则抛出错误 “Not Equal”,否则返回 true。
- notToBe(value) 方法用于判断给定的值是否与传入的参数不相等。如果相等,则抛出错误 “Equal”,否则返回 true。
AC代码
/** * @param {string} val * @return {Object} */ var expect = function (val) { return { toBe: (value) => { if (value !== val) throw "Not Equal"; return true; }, notToBe: (value) => { if (value === val) throw "Equal"; return true; }, }; }; /** * expect(5).toBe(5); // true * expect(5).notToBe(5); // throws "Equal" */
公众号
关注公众号『前端也能这么有趣
』,获取更多有趣内容。
说在后面
🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『
前端也能这么有趣
』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。