如果等于''则将字符串转换为FALSE

时间:2019-02-19 21:39:27

标签: javascript

我的代码返回一个字符串:

return val ? val.name : "N/A";

但是,如果val.name返回“”,则应该返回“ N / A”,而不是val.name。该怎么做?

我尝试了

return val ? val.name === "" : "N/A";
return val.name ? val.name : "N/A";
etc.

但是还没有运气。

6 个答案:

答案 0 :(得分:5)

使用布尔AND运算符检查val.name是否也为真(空字符串为falsy):

val && val.name ? val.name : "N/A"

答案 1 :(得分:5)

const val = {
  name: ''
}

const a = val && val.name || "N/A";

console.log(a)

答案 2 :(得分:2)

return (val || {}).name || 'N/A'

答案 3 :(得分:1)

我认为您需要的是continue上属性的安全读取方法。您可以创建一个接收objectobject的方法,并安全地读取链接验证的属性。可以用来实现此目的的链接示例如下:

key

obj && obj.key ? obj.key : "N/A"

(obj || {}).key || "N/A"

在将来(希望不久),也许您可​​以使用下一个:

obj && obj.key || "N/A"

Reference

最后,通用安全读取方法的一个最小示例可能是:

obj?.key || "N/A"

答案 4 :(得分:0)

这可以帮助您了解Idea可以做什么...

function getModify(string) {
    return (string=="")?('N/A'):(string);
}
console.log(getww(""));
console.log(getww("ub"));

// Output
// N/A
// ub

答案 5 :(得分:0)

返回val.name!=“”吗? val.name:“ N / A”;