我想为三元运算符内的变量赋值。
这是我的代码:
let myData;
{
data ? myData = _.findLastIndex(users, function(o) { return o.user == 'pebbles';}) : ''
}
谢谢
答案 0 :(得分:2)
如果您没有任何有用的“else”子句,请不要使用三元运算符;使用一个好的旧if
:
if (data) {
myData = _.findLastIndex(users, function(o) { return o.user == 'pebbles';});
}
你甚至可以内联,如果你坚持做一个单行(虽然它对可读性不好):
if (data) myData = ...;
答案 1 :(得分:2)
如果由于某种原因需要空字符串data
是假的,那么三元组确实是最短的方法:
删除{}
,并将分配移出三元语句:
let myData = data ? _.findLastIndex(users, function(o) { return o.user == 'pebbles';}) : '';
或者,(在我看来)更具可读性:
let myData = data ?
_.findLastIndex(users, function(o) {
return o.user == 'pebbles';
}) :
'';
答案 2 :(得分:-3)
您可以将语句包装在()
中并使其成为表达式。
var data = null;
var a = "foo";
data? (a= "null string") : (a = "")
console.log(a)
正如评论中所指出的,这种方法是一种不好的做法。这样做的原因是false
状态将返回""
但它没有分配给任何东西。这对其他人来说很难理解。
正确的方式是使用if
var data = null;
var a = "foo";
if(data)
a = "Null string";
console.log(a)