我正在尝试创建一个程序,该程序比较两个不同的值(x,y),并确定第一个大于,等于或小于另一个。 除此之外,它还将检测输入的值是否为NaN并输出错误语句。 代码如下。

function getRelationship(x, y) {
    if (x > y) {
        return ">";
    }
    else if (x < y) {
        return "<";
    }
    else if (x == y) {
        return "=";
    }
    else if (isNaN(x)) {
        console.log("Can\'t compare relationships because " + x + " is not a number");
        return x;
    }
    else if (isNaN(y)) {
        console.log("Can\'t compare relationships because " + y + " is not a number");
        return y;
    }
    else if (isNaN(x) && isNaN(y)) {
        console.log("Can\'t compare relationships because " + x + " and " + y + " are not numbers");
        return x, y;
    }
}

当我输入以下函数调用时:

console.log(getRelationship(1,4));
console.log(getRelationship(1,1));
console.log(getRelationship("that",2));
console.log(getRelationship("this"," something else")); 
console.log(getRelationship(3)); 
console.log(getRelationship("hi"));
console.log(getRelationship(NaN));
console.log(getRelationship(NaN, undefined));

我得到这个:

LOG: '<'
LOG: '='
LOG: 'Can't compare relationships because that is not a number'
LOG: 'that'
LOG: '>'
LOG: 'Can't compare relationships because undefined is not a number'
LOG: undefined
LOG: 'Can't compare relationships because hi is not a number'
LOG: 'hi'
LOG: 'Can't compare relationships because NaN is not a number'
LOG: NaN
LOG: 'Can't compare relationships because NaN is not a number'
LOG: NaN

因此,我的问题是如何不使用带有&&运算符的Else If语句中的第四个函数调用; 如何比较“ this”和“其他”,以及如何使用&&条件&&来更改它? 当我只需要预编码的console.log()输出时,如何得到NaN和其他一些字符串?

#1楼 票数:0

如何不使用带有&&运算符的Else If语句中的第四个函数调用?

因为if (isNaN(x))情况在此之前已经尝试过并且匹配。

为什么要比较“这个”和“其他”?

好吧,它们都是字符串,为什么不比较它们呢?

以及我该如何改变

我认为您只想比较数字。 在这种情况下,请明确说明。 您可以将两个操作数都简单地转换为数字(使用Number ),但是请注意,这同样适用于数字字符串。 如果您不想这样做,请对您的操作数进行typeof检查。

当我只需要预编码的console.log()输出时,如何得到NaN和其他一些字符串?

因为您return它们,并且正在console.log记录您的呼叫结果。

  ask by JCD translate from so

未解决问题?本站智能推荐:

3回复

编写一个接受两个整数并显示较大整数的JavaScript程序。

我想出了几种写上述功能的方法。 但是,我感觉自己都以错误的顺序进行操作,而且每一行都有太多条件... 可以用一种更简单的方式完成此操作吗(例如,仅在数字为整数的情况下运行函数),然后比较数字,而不是检查每行中它们是否为整数。 我知道有很多方法可以编写此代码,如果能保持if-else
1回复

具有优先约束的SSIS控制流优先级

我在SSIS控制流中有3个数据流任务:T1,T2和T3。 它们应该从T1到T2再到T3。 但是,T2应该仅在一个月初运行,而其他两个则每天运行。 因此,我添加了优先级约束,如下所示: 对于从T1到T2的约束,表达式如下: 对于其他两个约束,它们被配置为“逻辑或”:
1回复

根据条件控制SSIS包中的流量

有条件地(通过脚本任务或其他任何方式)控制SSIS中的程序流程吗? 目前,我有一个可以动态创建5个不同excel表的包(通过Execute SQL Task)。 有时可能所有5个都有数据,或者只有1个有数据。 当它只有1有数据时,它很好。 但是,当有5个DFT试图同时将数据写入同一工
2回复

控制流:运行两个异步数组映射

我有两个异步的函数–它们接受一个函数作为参数,该函数在完成时会调用(回调)。 我有一个数组。 我需要在此数组上使用Array.prototype.map两次运行这些函数。 当两个映射都完成后,我希望有一个使用两个参数调用的回调:错误和映射数组。 我需要什么样的控制流程来实现?
2回复

JavaScript 回调和控制流

什么时候执行回调,例如setTimeout()或点击事件的回调? 他们是暂停已经在运行的代码,还是等到它完成? 例子 我有一个数据结构 ( incrementalChanges ) 记录由用户交互引起的状态更改,例如鼠标点击。 如果我想将所有更改发送给另一个对等方,我会将这个数据结构发送给他。
1回复

JavaScript中的异步控制流

我正在为chrome浏览器扩展程序编写扩展程序,该扩展程序使用Web SQL进行本地存储。 这两个组件的代码似乎都严重依赖异步操作。 我对异步操作有很好的了解,但没有大量的经验来编写依赖于异步操作的代码。 例如: 为了克服缺乏向/从这些处理程序传递/返回变量的能力,我发现自己创
1回复

通过JavaScript中的事件控制流代码

调用client.fooBar ,将进行异步调用,并在client上发出事件foo 。 如果我一次只想处理一个数字(在处理完1 2之前不要移至2 ),最好的方法是组织代码吗? 这是node.js。
2回复

Javascript:如何使用异步递归树遍历来控制流?

我需要在树上进行递归,以使用异步操作在特定节点上执行操作。 如何控制流量,以便在完成后可以访问节点? 这是一个示例情况: 我有一个函数,它的目标是遍历树并将所有以'd'开头的名称大写。 之后,我想将树传递给另一个函数来做更多工作(可能删除所有名称以'a'开头的节点),但只有在完