Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS:将一个对象分解为另一个具有重命名属性的对象_Javascript_Ecmascript 6_Javascript Objects_Destructuring - Fatal编程技术网

Javascript JS:将一个对象分解为另一个具有重命名属性的对象

Javascript JS:将一个对象分解为另一个具有重命名属性的对象,javascript,ecmascript-6,javascript-objects,destructuring,Javascript,Ecmascript 6,Javascript Objects,Destructuring,在JS中是否可以执行以下操作 const obj = { a: 1, b: 2, c: 3 }; const copyObj = {...{ a: x, b: y, c: z } = obj }; 我知道我可以做到这一点: const { a: x, b: y, c: z } = obj; const copyObj = { x, y, z }; 但这不是我想要的。有什么建议吗?您可以使用一个函数获取想要的和重命名的属性 const 重命名=({a:x,b:y,c:z})=>({x,y

在JS中是否可以执行以下操作

const obj = { a: 1, b: 2, c: 3 };

const copyObj = {...{ a: x, b: y, c: z } = obj };
我知道我可以做到这一点:

const { a: x, b: y, c: z } = obj;

const copyObj = { x, y, z };

但这不是我想要的。有什么建议吗?

您可以使用一个函数获取想要的和重命名的属性

const
重命名=({a:x,b:y,c:z})=>({x,y,z}),
obj={a:1,b:2,c:3},
copyObj=重命名(obj);

console.log(copyObj)您可以使用

constobj={a:1,b:2,c:3}
常量copyObj={…({a:x,b:y,c:z})=>({x,y,z}))(obj}

console.log(copyObj)
为什么不能使用第二个?您也可以执行
const{a,b,c}=obj;constcopyobj={x:a,y:b,z:c}
@Dilshan并不是我不能/不会使用它,我只是想知道是否有更“干燥”的方法。这是一个好奇心驱动的/理论性的问题。@Bergi我知道这种方法,我在问题的描述中也提到过它。@GenesisAlgorithms唯一不重复属性名的方法是使用平凡的
const copyObj={x:ob.a,y:obj.b,z:obj.c}。没有比这更简单的了。谢谢!我可能不会使用它,但它仍然是我问题的有效答案。它是一种不会在函数外创建(多余)变量的模式。函数已返回一个新对象。传播是没有必要的。