没有其他

时间:2016-10-18 11:46:51

标签: javascript variables variable-assignment

我从服务中获取变量,它可以是true,false或undefined。如果是真或假我必须保留它,否则我必须设置为真;

我正在弄清楚如何制作它并且我使用了:

  obj.foo != false && (obj.foo = true);

有最好的方法吗?我的意思是,我可以使用三元运算符,但在某些情况下,我的变量已经是假/真,那么我不需要三元的else语句。

2 个答案:

答案 0 :(得分:2)

我认为这样可行:foo === undefined || foo

var foo = undefined;
console.log(foo === undefined || foo);

var foo = true;
console.log(foo === undefined || foo);

var foo = false;
console.log(foo === undefined || foo);

答案 1 :(得分:0)

这样的事情会起作用:

function invokeMe () {
  var objectsArray = [{name: "object1", trueOrNot: true}, 
                {name: "object2", trueOrNot: false},
                {name: "object3", trueOrNot: ''}
               ];
  objectsArray.forEach(function (object) {
  object.trueOrNot = object.trueOrNot !== false ? true : false;
  console.log(object);
});
}

invokeMe();

Jsfiddle