我有三个对象(ob1,ob2,ob3),其中只有三个被定义,我不知道哪一个。我想存储定义的对象'一个语句中的变量值,即不使用IF和ELSE。 像下面的东西。
var object = ob1 || ob2 ||ob3
答案 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
仍然可以利用单行合并。