Javascript 描述对象数组以获取嵌套值ES6

Javascript 描述对象数组以获取嵌套值ES6,javascript,arrays,ecmascript-6,javascript-objects,Javascript,Arrays,Ecmascript 6,Javascript Objects,我有一组对象,如: const array = [ { name: 'object1', value: true, parameters: [ { name: 'inner1', value: true}, { name: 'inner2', value: false}, ] }, { name: 'object2', value: false, } ]; 我需要得到数组中每个对象的值。 要获取我使用的object1和object2值 const[{v

我有一组对象,如:

const array = [
{
  name: 'object1', 
  value: true, 
  parameters: [
   { name: 'inner1', value: true},
   { name: 'inner2', value: false},
 ]
},
{
  name: 'object2', 
  value: false,
}

];
我需要得到数组中每个对象的值。 要获取我使用的object1和object2值

const[{value:object1},{value:object2}]=array


如何获取
参数
数组中对象的
?如何以正确的方式解构它?找不到正确的方法。

您必须使用
参数:
并继续分解:

const数组=[{
名称:“object1”,
价值观:正确,
参数:[{
名称:'inner1',
值:true
},
{
名称:'inner2',
值:false
},
]
},
{
名称:'object2',
值:false,
}
];
常量[{参数:[
{value:value1},
{value:value2}
]}]=数组;
console.log(值1、值2)
您只能获取并映射
参数的值

const
数组=[{name:'object1',value:true,参数:[{name:'inner1',value:true},{name:'inner2',value:false}]},{name:'object2',value:false}],
values=array.flatMap(({parameters=[]})=>parameters.map(({value}=>value));

console.log(值)解构必须遵循解构对象的形状。在这种情况下,一个很好的方法是复制对象本身,然后用变量名替换每个值,以将该值赋给它

// Object from which to deconstruct values
const myArray = [{
    name: 'object1', 
    value: true, 
    parameters: [
       { name: 'inner1', value: true},
       { name: 'inner2', value: false}]
    }];

// Deconstruction
const [{
    name: nameVar, 
    value: valueVar, 
    parameters: [
        { name: paramNameVar1, value: valueVar1},
        { name: paramNameVar2, value: valueVar2}]

     }] = myArray

当然,一旦你开始得到更复杂的对象,用这种方式解构可能会更费劲、可读性更低、效率更低。

但是你仍然需要对
值执行解构,因为它是一个数组?@Dan如果OP真的想要独立变量,当然,但在我看来这很奇怪。也可以执行
常量[value1,value2]=数组[0]。parameters.map(…
问题是如何用嵌套值解构对象/散列。解构必须遵循其解构的对象的形状。OP已获取顶级值,但无法获取嵌套数组中的值。考虑这样解构的一个好方法是调用y复制对象本身,然后将值替换为您想要分配这些值的变量名称。我想在您的回答中解释一下……您可以随时编辑它!