当第一个属性为空或未定义时,寻找一种巧妙的方法从对象访问第二个非空属性,使用ES6对象解构。
ES5等效项:
var obj = { a: null, b: 2 };
var num = obj.a || obj.b; // num = 2使用ES6 (类似于):
const { num: a || b } = obj; // <- how to achieve the above effect here?发布于 2018-01-04 05:55:08
const { a: num = obj.b } = obj;(这只适用于undefined,不适用于null)
或
const num = (({a, b}) => a || b)(obj)发布于 2018-01-04 06:34:59
解构中的默认值仅适用于undefined,而不适用于null。使用
var obj = { a: undefined, b: 2}你可以使用可怕的黑客
var { b: num, a: num = num } = obj;或者它的可读性更强的变体
const { b, a: num = b } = obj;然而,这在作用域中引入了额外的标识符b。
https://stackoverflow.com/questions/48085632
复制相似问题