首页 > 解决方案 > 对象解构时如何在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);

谁能告诉我如何在函数中获取值?

标签: javascriptobjectobject-destruction

解决方案


如果要获取内部的特定属性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}

推荐阅读