Javascript 解构并返回多个值

Javascript 解构并返回多个值,javascript,arrays,object,destructuring,map-function,Javascript,Arrays,Object,Destructuring,Map Function,我是javascript新手,现在正在学习解构。 我试图实现的(在控制台中显示)是: 姓名:迈克·史密斯,父亲:哈里·史密斯 姓名:汤姆·琼斯,父亲:理查德·琼斯 我收到一条错误消息,n没有定义,但应该可以吗? 以下是我一直在做的代码: const people=[ { 姓名:“迈克·史密斯”, 家庭:{ 母亲:“简·史密斯”, 父亲:“哈里·史密斯”, 姐姐:“萨曼莎·史密斯” }, 年龄:35 }, { 姓名:“汤姆·琼斯”, 家庭:{ 母亲:“诺拉·琼斯”, 父亲:“理查德·琼斯”, 兄

我是javascript新手,现在正在学习解构。 我试图实现的(在控制台中显示)是:

姓名:迈克·史密斯,父亲:哈里·史密斯

姓名:汤姆·琼斯,父亲:理查德·琼斯

我收到一条错误消息,n没有定义,但应该可以吗? 以下是我一直在做的代码:

const people=[
{
姓名:“迈克·史密斯”,
家庭:{
母亲:“简·史密斯”,
父亲:“哈里·史密斯”,
姐姐:“萨曼莎·史密斯”
},
年龄:35
},
{
姓名:“汤姆·琼斯”,
家庭:{
母亲:“诺拉·琼斯”,
父亲:“理查德·琼斯”,
兄弟:“霍华德·琼斯”
},
年龄:25
}
];
const kalle=people.map({name:n,family:{father:f}})=>{
返回[n,f]
});
log('Name:'+n+',Father:'+f);
//姓名:迈克·史密斯,父亲:哈里·史密斯

//“Name:Tom Jones,Father:Richard Jones”
n
f
不在函数范围内,这意味着您不能访问它们,而是在数组上循环

分解对象不需要键,除非值也是对象

const people=[
{
姓名:“迈克·史密斯”,
家庭:{
母亲:“简·史密斯”,
父亲:“哈里·史密斯”,
姐姐:“萨曼莎·史密斯”
},
年龄:35
},
{
姓名:“汤姆·琼斯”,
家庭:{
母亲:“诺拉·琼斯”,
父亲:“理查德·琼斯”,
兄弟:“霍华德·琼斯”
},
年龄:25
}
];
//返回一个数组
const persons=people.map({name,family:{father}}})=>{
返回[姓名,父亲];
});
//记录每个人
persons.forEach([姓名,父亲])=>{
log(`Name:${Name},Father:${Father}`);
});
//姓名:迈克·史密斯,父亲:哈里·史密斯

//“姓名:汤姆·琼斯,父亲:理查德·琼斯”
一个简单的
加入
可能符合你的期望

const people=[
{
姓名:“迈克·史密斯”,
家庭:{
母亲:“简·史密斯”,
父亲:“哈里·史密斯”,
姐姐:“萨曼莎·史密斯”,
},
年龄:35岁,
},
{
姓名:“汤姆·琼斯”,
家庭:{
母亲:“诺拉·琼斯”,
父亲:“理查德·琼斯”,
兄弟:“霍华德·琼斯”,
},
年龄:25岁,
},
]
const kalle=人
.map({name:n,family:{father:f}})=>{
返回“名称:+n+”,父:+f
})
.join(“\n”)

console.log(kalle)
您的日志不在您的功能范围内,因此此处未定义您的
n
kalle
是。您不能在任何地方使用kalle访问其属性。因为
f
n
没有全局作用域,所以它们是未定义的。@acincognito所以如何修复它以获得结果(“姓名:迈克·史密斯,父亲:哈里·史密斯”“姓名:汤姆·琼斯,父亲:理查德·琼斯”)我可以这样做“const-kalle=people.map”({Name:n,family:{Father:f}})=>{return console.log('Name:'+n+',Father:'+f);});'但是我想让我的日志在函数之外