【问题标题】:Ternary Operator double quotes三元运算符双引号
【发布时间】:2021-11-03 11:28:51
【问题描述】:

大家好,我正在尝试应用这个简单的逻辑,但是。我在数组中得到未定义的元素。我知道我可以用过滤器做到这一点,但我想这样做,那么解决方案是什么?我有什么问题?提前谢谢!

    const newArr = ["abc", 12, 43, 8, 9, 0, 15, 23]

const newww = newArr.map(n => {
    (typeof (n) === "string") ? {return n} : {return n.toString}
}
)

英文的逻辑是:如果n的类型等于字符串,则返回n,如果不返回空字符串。

【问题讨论】:

  • return (typeof (n) === "string") ? n : n.toString :) 单线const newww = newArr.map( n => (typeof n === "string") ? n : n.toString )
  • 与 if 语句不同,三元运算符返回一个值。

标签: javascript if-statement mapping conditional-operator double-quotes


【解决方案1】:

这里有两个问题。

三级运算符本身作为表达式求值。所以其中的return 是错误的。

另外,toString 是一个函数,所以它应该写成toString()

你可以把代码改成这样,这样它就可以工作了:

const newArr = ["abc", 12, 43, 8, 9, 0, 15, 23]

const newww = newArr.map(n => {
    return (typeof (n) === "string") ? n : n.toString();
});

【讨论】:

    【解决方案2】:

    我不确定这是否是您的问题的原因,但您应该将您的 return 语句写成这样:

    const newww = newArr.map(n => {
        return (typeof (n) === "string") ? n : n.toString
    })
    

    【讨论】:

      猜你喜欢
      • 2019-11-09
      • 2013-07-12
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      相关资源
      最近更新 更多