【问题标题】:Usefulness of the comma operator in comparisons [duplicate]逗号运算符在比较中的用处 [重复]
【发布时间】:2018-07-17 11:54:55
【问题描述】:

我在question on SO 中看到了类似如下的比较:

(pNum != ('2','3','4','5','6','7','8','9'))

OP 一直在尝试检查 数字是否在某个范围内,但此代码不准确,因为它始终会与大括号内的最右边的值(即 9)进行比较 这意味着当pNum = 2 比较将返回true 而不是false,正如OP 所期望的那样,它希望它像inArrayin 一样工作。

我的问题是,这种比较在任何情况下的任何实际情况下是否有用?

【问题讨论】:

  • var arr = ['2','3','4','5','6','7','8','9']; return arr.includes(pNum);
  • @gurvinder372 这不是问题;)
  • @Jamiec 哦,反正只是通过评论确认。
  • @Jamiec 这个问题与重复的问题没有共同之处
  • @pwolaq 你确定吗?参考:“我的问题是这种比较是否有用”

标签: javascript


【解决方案1】:

我的问题是这种比较在任何情况下的任何实际情况下是否有用?

没有。如您所见,比较仅比较括号内的最后一项。所以它所能做的就是迷惑读者。

如果您打算将变量与一组值进行比较,您可以使用array#includesarray#indexOf >= 0。比如:

console.log(['2','3','4','5','6','7','8','9'].includes('2'));
console.log(['2','3','4','5','6','7','8','9'].includes('6'));
console.log(['2','3','4','5','6','7','8','9'].includes('9'));

// IE 
console.log(['2','3','4','5','6','7','8','9'].indexOf('2') >= 0);
console.log(['2','3','4','5','6','7','8','9'].indexOf('6') >= 0);
console.log(['2','3','4','5','6','7','8','9'].indexOf('9') >= 0);

【讨论】:

    猜你喜欢
    • 2012-10-30
    • 2018-02-20
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 2016-11-12
    • 2018-03-30
    • 2018-02-23
    • 1970-01-01
    相关资源
    最近更新 更多