在JavaScript中为解构嵌套对象中的每个键设置默认值

在JavaScript中为解构嵌套对象中的每个键设置默认值,javascript,ecmascript-6,Javascript,Ecmascript 6,一般来说,我知道如何在Javascript中解构一个简单的对象。我还知道如何在解构过程中为简单对象提供默认值 例如,我可以将两个不同的嵌套对象传递给记录器函数。其中logger函数只是控制台记录嵌套数组 var firstExample={name:“foo”,编号:1,myObject:{myArray:[1,2,3]}; var secondExample={name:undefined,number:undefined,myObject:{myArray:[9,8,7]}; var my

一般来说,我知道如何在Javascript中解构一个简单的对象。我还知道如何在解构过程中为简单对象提供默认值

例如,我可以将两个不同的嵌套对象传递给记录器函数。其中logger函数只是控制台记录嵌套数组

var firstExample={name:“foo”,编号:1,myObject:{myArray:[1,2,3]};
var secondExample={name:undefined,number:undefined,myObject:{myArray:[9,8,7]};
var myLogger=({
name=“defaultName”,
数字=999,
myObject:{myArray:stuff}
}) => {
log(`${name}${stuff}`);
};
myLogger(第一个示例);//“foo 1,2,3”
myLogger(第二个示例);//“defaultName 9,8,7”
如错误所示:

无法对“undefined”或“null”的属性
myArray
进行分解

父对象(myObject)应具有空对象的默认值,以便可以从中提取(可能存在)属性
myArray
(并可能指定默认值):

var myLogger=({
name=“defaultName”,
数字=999,
myObject:{myArray:stuff}={}//{
log(`${name}${stuff}`);
};
var thirdExample={name:“bar”,编号:2};
myLogger(thirdExample)//错误

//TypeError:无法对“undefined”或“null”的属性“myArray”进行解构。
@Ele修复您的edit@smac89让我知道有什么问题mistake@Ele第二个片段包含了不在其中的内容OP@smac89是的,但是,我可以推断OP使用的是相同的函数。@Ele aight我现在看到的是,我一直忘记了
={}
gj