javascript - 解构一个深度嵌套的对象,其父对象之一是 Javascript 中的一个数组
问题描述
我有一个对象,我想在一行中解构一个嵌套对象,该对象具有一个数组作为父对象。鉴于以下对象,这甚至可以在一行中解构吗?
const deepObj = {
allInformation: {
edges: [
{
node: {
address: 'Never Never Land',
email: 'daffyduck@neverneverland',
phoneNumber: '146 246'
}
}
]
}
}
// one liner object destructuring in function signature??
const oneLiner = (deepObj) => (...)
目标是访问函数签名中address
的email
和变量。phoneNumber
解决方案
假设对象在每个级别上始终具有价值,您可以执行以下操作:
const deepObj = {
allInformation: {
edges: [
{
node: {
address: 'Never Never Land',
email: 'daffyduck@neverneverland',
phoneNumber: '146 246'
}
}
]
}
}
// one liner object destructuring in function signature??
const oneLiner = ({ allInformation: { edges: [{ node: { address, email, phoneNumber} } ] } }) => {
console.log(address)
console.log(email)
console.log(phoneNumber)
}
oneLiner(deepObj)
如果这些嵌套对象中的任何一个可能未定义,则必须添加一个空对象作为默认值,如下所示:
node: { address, email, phoneNumber} = {}
推荐阅读
- asp.net-mvc - HTTP 错误 500.19 - IIS 10 中的内部服务器错误
- c++ - 模板化类型函数中的模板参数
- java - XPath 的元素不可见错误
- c++ - c ++如何删除二维向量中的任何空元素
- python - 在正则表达式中获取一个连字符后跟 4 位数字的链接
- akka - akka 中的参与者间通信保证本地 FIFO.True 或 False
- ios - 如何在 iOS swift 中实现评论和回复系统
- mysql - 如何检查更新mysql表是否成功?
- datetime - 如何使用 Chrono 从 NaiveDate 转到特定的 TimeZone?
- haskell - 使 GHCi 以十进制形式打印。