我的代码返回一个字符串:
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.
但是还没有运气。
答案 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
上属性的安全读取方法。您可以创建一个接收object
和object
的方法,并安全地读取链接验证的属性。可以用来实现此目的的链接示例如下:
key
或
obj && obj.key ? obj.key : "N/A"
或
(obj || {}).key || "N/A"
在将来(希望不久),也许您可以使用下一个:
obj && obj.key || "N/A"
最后,通用安全读取方法的一个最小示例可能是:
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”;