对象解构时如何在 javascript 中的函数内获取嵌套对象值?

how to get nested object value inside a function in javascript while object destructuring?

在练习对象解构时;我遇到了一些问题。

我有一个这样的对象:

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}`);
}

或等效地,正如 Nick Parsons 在评论中所建议的那样:

function output({value, details: {serialNumber}}){
    console.log(`value: ${value} , detail: ${serialNumber}`);
}

如果您想显示 details 中包含的完整对象,则可以使用 JSON.stringify,如 here 所述。看看这段代码。

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}