对象解构时如何在 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}
在练习对象解构时;我遇到了一些问题。
我有一个这样的对象:
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}