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复制对象本身,然后将值替换为您想要分配这些值的变量名称。我想在您的回答中解释一下……您可以随时编辑它!