javascript使用默认值初始化对象中的每个值

javascript使用默认值初始化对象中的每个值,javascript,Javascript,我有以下代码来计算页面中的链接数: let temp = {} for (const page of pages) { let count = temp[page.outgoingLinks.length]; if (!count) { count = 0; } count++; temp[page.outgoingLinks.length]=count; } 很抱歉像temp这样的变量名,因为我正在尝试显示一些代码

我有以下代码来计算页面中的链接数:

let temp = {}
for (const page of pages) { 
    let count = temp[page.outgoingLinks.length];
    if (!count) {
        count = 0;
    } 
        count++;
    
    temp[page.outgoingLinks.length]=count;
}
很抱歉像temp这样的变量名,因为我正在尝试显示一些代码,这将帮助您理解我正在尝试做什么。在这里,我希望避免使用初始化值的if检查


在本例中,默认值为整数。但我想在那里存储一个数组,比如python中的defaultdict。关于如何在JS中实现它,您有什么想法吗?

JavaScript中没有Python的
defaultdict
,但是您可以在使用以下命令访问属性时使用默认值:


JavaScript中没有类似Python的
defaultdict
,但是您可以在使用以下命令访问属性时使用默认值:


由于需要多个默认值,可以创建包含默认值的对象。此对象可以在助手函数中定义,该函数接受一个参数,该参数指定所需默认值的类型,并返回一个可使用该值调用的函数

如果该值为
未定义
,则此函数返回所需类型的默认值

函数getInitializer(typeOfDefault){
常量默认值={
arr:[0,0,0],
数字:0,
清空字符串:“”
};
返回值(value)=>value??默认值[默认类型];
}
//默认号码
const initialize=getInitializer('num');
常数a=初始化(0);
控制台日志(a);
//默认数组
const initialize2=getInitializer('arr');
常数b=初始值2(null);

控制台日志(b)由于需要多个默认值,可以创建包含默认值的对象。此对象可以在助手函数中定义,该函数接受一个参数,该参数指定所需默认值的类型,并返回一个可使用该值调用的函数

如果该值为
未定义
,则此函数返回所需类型的默认值

函数getInitializer(typeOfDefault){
常量默认值={
arr:[0,0,0],
数字:0,
清空字符串:“”
};
返回值(value)=>value??默认值[默认类型];
}
//默认号码
const initialize=getInitializer('num');
常数a=初始化(0);
控制台日志(a);
//默认数组
const initialize2=getInitializer('arr');
常数b=初始值2(null);

控制台日志(b)以避免需要初始化值的if检查

for (const page of pages) { 
   temp[page.outgoingLinks.length] = temp[page.outgoingLinks.length] ? temp[page.outgoingLinks.length]++ : 0;
}

在这里,您可以直接使用三元运算符来执行此操作。

以避免需要初始化值的if检查。

for (const page of pages) { 
   temp[page.outgoingLinks.length] = temp[page.outgoingLinks.length] ? temp[page.outgoingLinks.length]++ : 0;
}
在这里,您可以直接使用三元运算符来执行此操作