在功能调用中实现对象分解的巧妙的ES6 + / TS速记是什么?
让我们假设一个被广泛使用并且不能更改其签名的Javascript函数
const foo = (b, a) => console.log(b, a);
foo(66,55); // 66, 55
还有一个用于为调用参数提供值的对象
const o = {a: 55, b: 66 };
foo(o.b, o.a); // 66, 55 <-- can we find a short-hand ?
有些电话没有击中目标
foo(...Object.values(o)) // 55, 66 (no, JS object keys are unordered by definition)
foo(...o); // TypeError (short, but not valid, illustration only)
foo(({b, a} = o)); // {a: 55, b: 66} undefined (no error, but we want 66, 55)
答案 0 :(得分:0)
如果您无法更改函数的签名, 那么您必须按正确的顺序用每个参数调用它。
由于地图没有任何顺序,因此对象解构是不可能的。
您可以通过应用进行类似操作:
df[df.col==True]
但是不能保证值的顺序。
PEP 8: comparison to True should be 'if cond is True:' or 'if cond:'
因此,没有任何机灵方式。