use*_*301 3 javascript dictionary
我想用 JavaScript 填充字典的字典。
一旦我有了居民的地址和姓名,我想将其写入对象,即
addressCache[city][street][number] = name
但是,如果我的字典尚不包含 s 键的值city
,则它会访问street
of undefined
,因为字典尚不存在。
我目前的解决方法是
adressCache = {}
function setAddressEntry(city, street, number, familyName) {
if(!adressCache[city]) {
adressCache[city] = {}
}
if(!adressCache[city][street]) {
adressCache[city][street] = {}
}
adressCache[city][street][number] = familyName
}
Run Code Online (Sandbox Code Playgroud)
我认为这不是正确的做法。我该如何改进这段代码?或者为此编写一个辅助函数是否很常见?
使用逻辑空值赋值 (??=)会更容易、更干净
let adressCache = {};
function setAddressEntry(city, street, number, familyName) {
adressCache.city ??= {};
adressCache.city.street ??= {};
adressCache.city.street.number = familyName;
}
setAddressEntry("gurugram", "1st street", 24, "SULTAN");
console.log(adressCache);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3398 次 |
最近记录: |