Javascript 在ES6中分解大型对象时自动分配变量
我想我对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
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这行没有意义。如果由我来决定的话,我会让物体保持原样。更具可读性。想要这样做的实际原因是什么?一堆动态变量实际上有什么帮助?你想要解决的真正问题是什么?