javascript - 对象解构时如何在javascript中的函数内获取嵌套对象值?
问题描述
在练习对象解构时;我遇到了一些问题。
我有一个这样的对象:
const secondObject = {
value : 2,
credit: 23,
details: {
serialNumber : 4
}
}
现在我想在函数参数中获取 'serialNumber' 值。所以我调用这样的函数:
function output({value, details}){
console.log(`value: ${value} , detail: ${details}`);
}
output(secondObject);
当我将其登录到控制台时,结果显示:详细信息:[object Object]
*但如果我这样做,我会得到序列号的值:*
const {details: {serialNumber}} = secondObject;
console.log(serialNumber);
谁能告诉我如何在函数中获取值?
解决方案
如果要获取内部的特定属性details
,则可以直接访问它:
function output({value, details}){
console.log(`value: ${value} , detail: ${details.serialNumber}`);
}
或等效地,正如尼克帕森斯在评论中所建议的那样:
function output({value, details: {serialNumber}}){
console.log(`value: ${value} , detail: ${serialNumber}`);
}
相反,如果您想显示 中包含的完整对象details
,那么您可以使用JSON.stringify
,如此处所述。看看这段代码。
const secondObject = {
value : 2,
credit: 23,
details: {
serialNumber : 4,
fooBar: 42
}
}
function output({value, details}){
str = JSON.stringify(details);
console.log(`value: ${value} , detail: ${str}`);
}
output(secondObject);
// value: 2 , detail: {"serialNumber":4,"fooBar":42}
推荐阅读
- riscv - 区分 rv64imafd 和 rv64imafdc isa
- ios - 在 SwiftUI 选项/最佳实践中结合数据源/持久性?
- regex - 使用正则表达式从 0 到 999 之间的数字中提取带有数字的字符串
- ios - 调整 UIImageView 的大小保持纵横比
- python - 我如何使用 Python 处理新加坡车牌的校验和
- python - 获取分层熊猫数据框中的先前值
- excel - VBA - 搜索列名,完全删除列
- java - 未找到休眠配置文件
- python - 使用请求包时的 Viusal Studio python 错误(错误:json.decoder.JSONDecodeError:期望值:第 1 行第 1 列(字符 0))
- javascript - 如何在不使用 Jquery 的情况下将类添加到 DOM 元素 - Angular 6