在一个语句

时间:2015-09-22 14:31:14

标签: javascript

我有三个对象(ob1,ob2,ob3),其中只有三个被定义,我不知道哪一个。我想存储定义的对象'一个语句中的变量值,即不使用IF和ELSE。 像下面的东西。

var object = ob1 || ob2 ||ob3

1 个答案:

答案 0 :(得分:1)

您目前的方法有什么问题?这是正确的逻辑:

var obj1 = null;
var obj2 = 'hello';
var obj3 = null;

var obj4 = obj1 || obj2 || obj3;

console.log(obj4);
// hello

修改后:我不相信有任何快速简便的方法来获取第一个undefined值,就像空合并检查一样,但这里是一个“一个”的镜头-liner“:

//var obj1 = undefined;
var obj2 = 'hello';
//var obj3 = undefined;

var obj4 = 
  (typeof obj1 === "undefined" ? null: obj1) ||
  (typeof obj2 === "undefined" ? null: obj2) ||
  (typeof obj3 === "undefined" ? null: obj3);

console.log(obj4);
// hello

使用相同的逻辑,实际上只是将undefined转换为null仍然可以利用单行合并。