三元运算符双引号

Ternary Operator double quotes

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

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

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

英文的逻辑是:İf n的类型等于string return n if not return empty string.

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

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

这里有两处错误。

三元运算符被评估为表达式本身。所以其中一个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();
});