2704. 相等还是不相等

简介: 2704. 相等还是不相等

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

请你编写一个名为 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,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

目录
相关文章
|
6月前
|
算法 前端开发 调度
贪心算法适用于解决什么类型的问题?
贪心算法适用于解决什么类型的问题?
255 1
|
6月前
|
Web App开发 JavaScript 前端开发
使用vue快速开发一个带弹窗的Chrome插件
使用vue快速开发一个带弹窗的Chrome插件
236 0
使用vue快速开发一个带弹窗的Chrome插件
|
6月前
|
存储 JavaScript 前端开发
好烦,怎么输入拼音的过程也会触发input事件!!!
好烦,怎么输入拼音的过程也会触发input事件!!!
171 0
|
6月前
|
JavaScript 前端开发 搜索推荐
不想要网页默认的右键菜单栏,怎么封装一个可以自定义的右键菜单组件?
不想要网页默认的右键菜单栏,怎么封装一个可以自定义的右键菜单组件?
104 0
|
6月前
|
前端开发 算法 网络安全
图片滑块验证功能很难吗?做个可以自己抠形状的图片滑块验证组件
图片滑块验证功能很难吗?做个可以自己抠形状的图片滑块验证组件
145 0
|
6月前
|
存储 前端开发 JavaScript
JavaScript图片处理大揭秘!掌握文件流处理方法
JavaScript图片处理大揭秘!掌握文件流处理方法
115 0
|
6月前
|
JavaScript 前端开发 安全
使用 Node.js 插件给指定目录下的所有图片添加上文字水印
使用 Node.js 插件给指定目录下的所有图片添加上文字水印
155 0
|
6月前
|
前端开发 算法 JavaScript
从基础到进阶:实现div控件的拖拽和缩放功能
从基础到进阶:实现div控件的拖拽和缩放功能
95 0
|
6月前
|
Web App开发 JavaScript 前端开发
从零开始,轻松打造个人化Chrome浏览器插件
从零开始,轻松打造个人化Chrome浏览器插件
164 0
|
6月前
|
JavaScript 前端开发 算法
简化文件上传流程:学习如何封装Vue2拖拽上传组件
简化文件上传流程:学习如何封装Vue2拖拽上传组件
124 0