任何人都知道如何更简洁/更优雅地实现以下目标?
A = B if B?
感谢。
我正在寻找仅引用A和B一次的解决方案。并编译成
if (typeof B !== "undefined" && B !== null) { A = B; }
或类似的东西。
要有这个简短的帮助,可以使下面的内容更具可读性:
someObject[someAttribute] = (someOtherObject[someOtherAttribute] if someOtherObject[someOtherAttribute]?)
这是我提问的动机。
答案 0 :(得分:20)
你可以说:
a = b ? a
例如,这个:
a = 11
a = b ? a
console.log(a)
b = 23
a = b ? a
console.log(a)
会在控制台中为您提供11
和23
(演示:http://jsfiddle.net/ambiguous/ngtEE/)
答案 1 :(得分:3)
可能是这样的:
A=_ if (_=B)?
展开:
if ((_ = B) != null) {
A = _;
}
这将覆盖A中的B,但只有在它不为空时,才引用两次。
答案 2 :(得分:2)
不确定Coffee Script,但你可以在常规的javascript中使用OR运算符,如下所示:
a = b || a