2020-10-06 23:10:08 +05:30

2.2 KiB
Raw Blame History

id, challengeType, videoUrl, forumTopicId, title
id challengeType videoUrl forumTopicId title
587d7b7e367417b2b2512b21 1 https://scrimba.com/c/cyWJBT4 301179 使用多个三元运算符

Description

在之前的挑战中,你使用了一个条件运算符。你也可以将多个运算符串联在一起以检查多种条件。 下面的函数使用 ifelse if 和 else 语句来检查多个条件:
function findGreaterOrEqual(a, b) {
  if (a === b) {
    return "a and b are equal";
  }
  else if (a > b) {
    return "a is greater";
  }
  else {
    return "b is greater";
  }
}

上面的函数使用条件运算符写法如下:

function findGreaterOrEqual(a, b) {
  return (a === b) ? "a and b are equal" 
    : (a > b) ? "a is greater" 
    : "b is greater";
}

即便如此,应谨慎使用多个三元运算符,因为在没有适当缩进的情况下使用多个三元运算符可能会使您的代码难以阅读。 例如:

function findGreaterOrEqual(a, b) {
  return (a === b) ? "a and b are equal" : (a > b) ? "a is greater" : "b is greater";
}

Instructions

在 checkSign 函数中使用多个条件运算符来检查数字是正数 ("positive")、负数 ("negative") 或零 ("zero")。

Tests

tests:
  - text: <code>checkSign</code>应该使用多个条件运算符。
    testString: 'assert(/.+?\s*?\?\s*?.+?\s*?:\s*?.+?\s*?\?\s*?.+?\s*?:\s*?.+?/gi.test(code));'
  - text: <code>checkSign(10)</code>应该返回 "positive" 注意,结果对大小写敏感。
    testString: assert(checkSign(10) === 'positive');
  - text: <code>checkSign(-12)</code>应该返回 "negative" 注意,结果对大小写敏感。
    testString: assert(checkSign(-12) === 'negative');
  - text: <code>checkSign(0)</code>应该返回 "zero" 注意,结果对大小写敏感。
    testString: assert(checkSign(0) === 'zero');

Challenge Seed

function checkSign(num) {

}

checkSign(10);

Solution

function checkSign(num) {
  return (num > 0) ? 'positive' : (num < 0) ? 'negative' : 'zero';
}