javascript - 用 0 内部对象替换 undefined 的最佳方法是什么?
问题描述
这是示例对象:
对象内部的值实际上没有被调用value1
,value2
等等
他们都有不同的名字
data
是从api获取的数据。
let object = {
id: '1',
gen: {
value1: data.value1,
value2: data.value2,
value3: data.value3,
value4: data.value4, // etc
},
somethingelse: {
one: {
value1: data.value1,
value2: data.value2,
value3: data.value3,
value4: data.value4, // etc
},
two: {
value1: data.value1,
value2: data.value2,
value3: data.value3,
value4: data.value4, // etc
},
three: {
value1: data.value1,
value2: data.value2,
value3: data.value3,
value4: data.value4, // etc
}
}
};
我知道我可以添加|| 0
到每一个,但它会是很多丑陋的代码,而且有时会有数学运算会返回NaN
,我不能这样做:
if (!object.value1) object.value1 = 0
因为我需要 100 行重复的代码
解决方案
您可以将相同的逻辑应用于具有更多循环的更深层次的对象:
for(let key in myObject) {
if(myObject[key] === undefined || myObject[key] === null)
myObject[key] = 0;
}
如果您迭代的对象中有更多对象,那么键的键等等。
推荐阅读
- npm - `yarn remove` 一个 deps 列表,而不会因错误而放弃
- excel - 将单元格样式从一种样式更改为另一种样式
- airflow - 自定义气流操作符作为“插件”或从 dags 目录直接导入
- c++ - 在树中,我得到错误,没有匹配函数调用函数,但我使用模板正确地完成了它
- java - 无法为 DDL 执行 docker 打开 JDBC 连接
- tensorflow - 尝试使用 Anaconda 的 pip 安装 TensorFlow 时出错
- excel - 是否可以将日期组合在一起并返回该组的开始和结束日期?
- css - 使用内联 CSS 的 GMail 电子邮件中的水印 - 不能使用 STYLE 标记 - 在电子邮件正文的中心覆盖透明图像
- python - Python 3 在 shuffle(X,Y) 处导致内存错误,其中 X 是 36000 个 3 通道图像 (36000, 256,256,3),Y 是 3 通道普通数据 (36000, 256,256,3)
- sql - 如何在 SQL 中将独立月份添加到独立年份?