javascript - 如何合并两个 JavaScript 对象的属性并且不喜欢空值?
问题描述
这里有两个对象:
const obj1 = {a: null, b: "b"}
const obj2 = {a: "a", b: null}
如何合并这两个对象并获得以下对象?
{a: "a", b: "b"}
我可以做这个:
const merged = {...obj1, ...obj2}
但它返回这个:
{ a: "a", b: null }
有没有一种方法可以合并两个对象,同时不喜欢 null(也不为空、未定义等)值?
解决方案
function merge(obj1, obj2) {
answer = {}
for(key in obj1) {
if(answer[key] === undefined || answer[key] === null)
answer[key] = obj1[key];
}
for(key in obj2) {
if(answer[key] === undefined || answer[key] === null)
answer[key] = obj2[key];
}
return answer
}
推荐阅读
- javascript - 篡改猴子脚本在不同机器和浏览器上的行为不同
- sql - 需要使用 SCCM 视图在工作站上安装银灯
- ssh - 如何避免来自控制台的 Kerberos 提示
- jenkins - Jenkins 尝试使用 Manage Jenkins 配置 JDK 和 Maven,但我没有在页面中看到这些部分和“全局工具配置”
- here-api - Here API 端点上的凭据无效
- javascript - react-dates 日期选择器默认弹出行为
- android - Android-Go 上的 MediaStore.ACTION_IMAGE_CAPTURE
- javascript - 在 JavaScript 中创建“包含”类的实例的正确方法是什么?
- spring-boot - 有人可以检查我的 SpringBoot 的结构吗?
- sql - 如何将密码转换为MD5