问题描述
我有以下对象:
const john = {
family: [
{ firstName: 'david',secondName: 'jana' },{ firstName: 'eyal',secondName: 'shani ' },],};
我想在一次操作中获得 'david' 字符串。所以我尝试了以下代码:
const { family:[0]{firstName}}} = john;
但我收到错误:
“解构表达式只能有标识符引用”
有人能用简单的话告诉我(因为我是语言新手)我做错了什么?
解决方法
要使用解构提取深度嵌套的值,语法几乎与声明具有这些属性的对象相同。 family:[0]
不是有效的语法 - 相反,您需要用数组分隔符将 family
的内容括起来:
const john = {
family: [{
firstName: 'david',secondName: 'jana'
},{
firstName: 'eyal',secondName: 'shani '
},],};
const { family:[{firstName}]} = john;
console.log(firstName);
但我强烈建议不要使用这样的嵌套解构。写作、阅读和理解太难了。至少在外部访问中最好使用纯点符号,例如
const john = {
family: [{
firstName: 'david',};
const { firstName } = john.family[0];
console.log(firstName);