列表

详情


2704. 相等还是不相等

请你编写一个名为 expect 的函数,用于帮助开发人员测试他们的代码。它应该接受任何值 val 并返回一个包含以下两个函数的对象。

 

示例 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.

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
/** * @param {string} val * @return {Object} */ var expect = function(val) { }; /** * expect(5).toBe(5); // true * expect(5).notToBe(5); // throws "Equal" */

typescript 解法, 执行用时: 60 ms, 内存消耗: 42.4 MB, 提交时间: 2023-05-31 15:13:57

type ToBeOrNotToBe = {
    toBe: (val: any) => boolean;
    notToBe: (val: any) => boolean;
};

function expect(val: any): ToBeOrNotToBe {
    return {
        toBe: v => {
            if(v === val)
                return true
            else 
                throw Error('Not Equal')
        },
        notToBe: v => {
            if(v !== val)
                return true
            else 
                throw Error('Equal')
        }
    }
};

/**
 * expect(5).toBe(5); // true
 * expect(5).notToBe(5); // throws "Equal"
 */

javascript 解法, 执行用时: 56 ms, 内存消耗: 41.1 MB, 提交时间: 2023-05-31 15:13:35

/**
 * @param {string} val
 * @return {Object}
 */
var expect = function(val) {
    return {
        toBe:function(val1){
            if(val1===val){
                return true
            }else{
                throw new Error('Not Equal')
            }
        },
        notToBe:function(val1){
            if(val1!==val){
                return true
            }else{
                throw new Error('Equal')
            }
        }
    }
};

/**
 * expect(5).toBe(5); // true
 * expect(5).notToBe(5); // throws "Equal"
 */

上一题