Javascript 在ES6中分解大型对象时自动分配变量

Javascript 在ES6中分解大型对象时自动分配变量,javascript,reactjs,ecmascript-6,destructuring,Javascript,Reactjs,Ecmascript 6,Destructuring,我想我对ES6中的解构非常了解。例如: const obj = { foo: 'String1', bar: 'String2' } let { foo, bar } = obj console.log(foo) //Prints "String1" 很简单 但是,我有一个具有动态名称的动态属性数的大型对象。我希望能够自动分配它们 示例对象: const obj = { a: 'String1', b: 'String2', c: 'St

我想我对ES6中的解构非常了解。例如:

const obj = {
  foo: 'String1',
  bar: 'String2'
}

let { foo, bar } = obj

console.log(foo) //Prints "String1"
很简单

但是,我有一个具有动态名称的动态属性数的大型对象。我希望能够自动分配它们

示例对象:

const obj = {
    a: 'String1',
    b: 'String2',
    c: 'String3',
    // ....
    y: 'String25',
    z: 'String26',
} 
我没有单独声明每个变量,而是尝试:

// Instead of 
// { a, b, c, d, so_on, y, z } = obj 
// I try: 

let { ...obj } = obj
但是得到这个错误:
已声明标识符“obj”


有什么更好的方法来解决这个问题呢?

只要标识符不同于您试图分解的对象的标识符,它就应该完全按照您的意愿工作

const obj = {
    a: 'String1',
    b: 'String2',
    c: 'String3',
    // ...
    y: 'String25',
    z: 'String26',
} 

const { a, b, ...rest } = obj
// const a: 'String1'
// const b: 'String2'
// const rest: {
//     c: string;
//     ...
//     y: string;
//     z: string;
// }

请参见。

中的这个例子,如果它不是一组硬编码的变量,那么做您想做的事情似乎不是一个好主意。>让{…obj}=obj这行没有意义。如果由我来决定的话,我会让物体保持原样。更具可读性。想要这样做的实际原因是什么?一堆动态变量实际上有什么帮助?你想要解决的真正问题是什么?