Ecmascript 6 我们如何在对象分解的同时应用该方法?
我有一个复杂的对象,我想提取一些键,应用一些函数,并用其他变量名和使用对象解构语法分配它,但找不到任何应用的解决方案Ecmascript 6 我们如何在对象分解的同时应用该方法?,ecmascript-6,object-destructuring,Ecmascript 6,Object Destructuring,我有一个复杂的对象,我想提取一些键,应用一些函数,并用其他变量名和使用对象解构语法分配它,但找不到任何应用的解决方案 const alpha = { a: 'lower', b: '23.45' }; const { a: newA.toUpperCase(), b: parseFloat(floatB)} = alpha; 我知道这是错误的,因为这里还没有定义newA和floatB 我也试过了 const{a:a.toUpperCase(),b:parseFloat(b)}=alpha 但
const alpha = { a: 'lower', b: '23.45' };
const { a: newA.toUpperCase(), b: parseFloat(floatB)} = alpha;
我知道这是错误的,因为这里还没有定义newA
和floatB
我也试过了
const{a:a.toUpperCase(),b:parseFloat(b)}=alpha代码>
但这也不起作用
因此,我的问题是,我们如何才能以某种方式实现目标
或者我们需要在分配为新变量名后再做 你不能同时这么做。
尽管您正在声明/创建变量,但仍在进行分解。
在创建变量时,不能执行函数
所以,
第1步->从alpha中分解所需内容。
步骤2->执行您需要的函数,但一般来说,我们可以在创建变量时执行函数,例如`let x=b.toUpperCase()`这是一种特殊情况,在这种情况下,您需要追加/chain.toUpperCase,因为它存在于b的原型链中。您还可以从原型链中解构方法。例如,const a=[1,2,3,4],现在如果执行{length}=a,并且console.log(a),则得到4。同样,因为它是一个存在于原型链上的方法。您的意思是a.prototype.toUpperCase():newA
可以工作@实际上,evedeslength
不是一个原型方法(或getter),而是一个实例属性,这里不使用解构const newA=alpha.a.toUpperCase(),floatB=parseFloat(alpha.b)代码>更简单、更简短、更易读。这是我在OP中解释的一个简单案例。我想提取一个deepdown属性。然后您可能想显示您的实际案例。但是,这仍然是不可能的,在访问deep属性之后,您将需要额外的步骤。